天天看點

mysql5.5安裝和基本管理linux系統下

MySQL資料庫系統

MySQL安裝 (源碼包安裝)

解除安裝系統中已存在的MySQL的rpm版軟體

安裝前工作

安裝工具

yum install -y ncurses-devel cmake make gcc

gcc-c++

1.配置

cmake \

-DCMAKE_INSTALL_PREFIX=/usr/local/mysql \

-DMYSQL_DATADIR=/home/mysql/ \

-DMYSQL_UNIX_ADDR=/home/mysql/mysql.sock \

-DWITH_MYISAM_STORAGE_ENGINE=1 \

-DWITH_INNOBASE_STORAGE_ENGINE=1 \

-DWITH_ARCHIVE_STORAGE_ENGINE=1 \

-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \

-DENABLED_LOCAL_INFILE=1 \

-DDEFAULT_CHARSET=utf8 \

-DDEFAULT_COLLATION=utf8_general_ci \

-DEXTRA_CHARSETS=all \

-DWITH_SSL=system \

-DMYSQL_TCP_PORT=3306 \

-DENABLE_DOWNLOADS=1 \

-DWITH_SSL=bundled

如果在配置的時候報錯,之後重新配置的時候需要清除緩存檔案,在接着安裝

rm -f CMakeCache.txt

2.make ; make install

mysql主配置檔案

/etc/my.cnf

在源碼包所在目錄的support-files目錄中有配置檔案的模闆,可以拷過去直接使用

cp support-files/my-medium.cnf /etc/my.cnf

更改安裝目錄權限,使mysql程式有權限管理

chown -R mysql.mysql /usr/local/mysql

更改PASH變量,友善管理mysql

export PATH=$PATH:/usr/local/mysql/bin/

(要永久生效可以寫在~/.bash_profile等配置檔案中)

将mysql加為系統程式,友善管理

在源碼包所在目錄的support-files目錄中有mysql的服務腳本檔案mysql.server

cp support-files/mysql.server /etc/init.d/mysqld

chkconfig --add mysqld

chkconfig --level 35 mysqld on

初始化mysql

/usr/local/mysql/scripts/mysql_install_db \

--user=mysql \

--ldata=/var/lib/mysql \

--basedir=/usr/local/mysql \

--datadir=/home/mysql

(初始化腳本mysql_install_db位于安裝目錄的scripts檔案夾中,--user指定使用者,--ldata指定連結檔案,--basedi指定基本目錄, --datadir指定資料目錄)

因為配置時指定了-DMYSQL_UNIX_ADDR=/home/mysql/mysql.sock,可實際此檔案在/var/lib/mysql/mysql.sock目錄下,是以我要給它設定一個連結

ln -s /var/lib/mysql/mysql.sock /home/mysql/mysql.sock

編輯服務腳本檔案/etc/init.d/mysqld檔案,指定安裝的目錄和資料檔案儲存檔案的目錄

vi /etc/init.d/mysqld

basedir=/usr/local/mysql

datadir=/home/mysql

啟動mysql程式

service mysqld start

檢視程式是否啟動

netstat -anptu | grep mysqd

以上步驟做完後,mysql的安裝和初始化做好了,就可以使用了

登入資料庫

mysql -u root

-p:使用密碼

-h:登入遠端資料庫

修改mysql資料庫root密碼

mysqladmin -u root -p password '新密碼'需輸舊密碼

資料庫的提示符為mysql>,指令大小寫不敏感;且每個指令都以分号;号結尾,若沒以分号結尾,将代表指令沒有結束,隻是強制換行而已,等同于linux指令行中的\鍵。

下面是mysql環境下的一些指令

增加指令

CREATE DATABASE benet;建立benet資料庫

use benet; 進入benet資料庫

CREATE TABLE users(user_name CHAR(16) NOT NULL, user_passwd CHAR(48) DEFAULT ' ', PRIMARY KEY (user_name));建立表名為users,

user_name表示第1行名稱,“char(16)”表示類型為字元串,最大為16數值,“not null”表示值不能為空;user_passwd”表示第2行,DEFAULT ' ' 表示可以為空primary key(user_name)表示主鍵名

INSERT INTOusers(user_name,user_passwd) VALUES('zhangsan', PASSWORD('123456'));在users表中插入一條内容,如果插入的每個字段都包含内容,(user_name,user_passwd)可以省略

删除指令

DELETE FROM users WHERE user_name='lisi';

删除user表中lisi的内容

DROP FROM users; 删除user表中所有内容

DROP TABLE users;删除users表

DROP DATABASE benet;删除benet資料庫

更改指令

UPDATE mysql.user SETpassword=PASSWORD('123456') WHERE user='root';更改root的password值

檢視指令

show databases;檢視所有資料庫

use test; 進入test資料庫

show tables; 檢視資料中的表

describe user;檢視user表的資訊

select * from user; 檢視user表裡的内容

select user from user; 檢視user表裡的user這個使用者字段裡有哪些使用者

SELECT user,host,password FROM mysql.user WHERE user=''; 檢視mysql庫中user表中 user,host,password中user字段為空的行

使用者授權

GRANT select ON auth.* TO 'tom'@'localhost' IDENTIFIED BY '密碼'建立tom使用者,對其授權隻能查詢以auth開頭的所有表,或auth中的所有表,且隻能在localhost登陸,可以為IP

flush privileges; 重新整理授權資訊

備份與恢複

備份和恢複是在bash環境下執行,是linux指令,而不是在mysql環境下

備份

mysqldump -u root -p --opt --all-databases >all-data.sql

備份所有資料庫

mysqldump -u root -p --database benet > benet.sql

備份benet資料庫

還原

mysql -u root -p < all-data.sql

all-data.sql為備份的檔案,如果隻是某個資料庫的備份,可以在-p後面跟上資料庫名

繼續閱讀