5.7和之前版本的MySQL有一些不同既绩,現(xiàn)把CentOS 7下MySQL 5.7安裝遭京、配置與應(yīng)用完整過(guò)程記下來(lái),或許對(duì)新手來(lái)說(shuō)有用虐呻。
本文描述的安裝是采用通用的二進(jìn)制壓縮包(linux – Generic)以解壓方式安裝牧氮,相當(dāng)于綠色安裝了琼腔。
一、下載通用安裝二進(jìn)制包
先下載mysql安裝包:打開(kāi) http://dev.mysql.com/downloads/mysql/
選擇 linux – Generic并在其下選擇
Linux – Generic (glibc 2.5) (x86, 64-bit), Compressed TAR Archive
進(jìn)行下載踱葛〉ち可以先下載到一個(gè)臨時(shí)目錄里,解壓后尸诽,得到兩個(gè)包:
mysql-5.7.11-linux-glibc2.5-x86_64.tar.gz
mysql-test-5.7.11-linux-glibc2.5-x86_64.tar.gz
只需要mysql-5.7.11-linux-glibc2.5-x86_64.tar.gz 這個(gè)包就行了甥材。
二、建立用戶和目錄
建立用戶mysql性含,組mysql洲赵。后面mysql就使用這個(gè)用戶來(lái)運(yùn)行(注意這也是mysql啟動(dòng)腳本中默認(rèn)的用戶,因此最好不要改名)商蕴。
groupadd mysql
useradd -r -g mysql mysql
(使用-r參數(shù)表示mysql用戶是一個(gè)系統(tǒng)用戶叠萍,不能登錄)
建立目錄/work/program,后面mysql就安裝在這個(gè)目錄下面绪商。
mkdir /work/program
三苛谷、安裝
【解壓】
將前面得到的mysql-5.7.11-linux-glibc2.5-x86_64.tar.gz解壓至/work/program目錄下
tar zxvf mysql-5.7.11-linux-glibc2.5-x86_64.tar.gz -C /work/program
這時(shí)在program下得到的目錄名很長(zhǎng),如果不想改名格郁,則可以建立一個(gè)聯(lián)接:
ln -s mysql-5.7.11-linux-glibc2.5-x86_64 mysql
此后就可以用/work/program/mysql來(lái)找到mysql的安裝目錄了
注意腹殿,如果mysql目錄下沒(méi)有data目錄,手動(dòng)建一個(gè)理张。
【目錄權(quán)限設(shè)置】
將mysql及其下所有的目錄所有者和組均設(shè)為mysql:
cd /work/program/mysql
chown mysql:mysql -R .
【初始化】
/work/program/mysql/bin/mysqld –initialize –user=mysql –datadir=/work/program/mysql/data –basedir=/work/program/mysql
注意:
- data目錄解壓后沒(méi)有赫蛇,需要手動(dòng)建立(見(jiàn)上文);
- mysql5.7和之前版本不同雾叭,很多資料上都是這個(gè)命令
…../scripts/mysql_install_db –user=mysql
而5.7版本根本沒(méi)有這個(gè)悟耘。
初始化成功后出現(xiàn)如下信息:
201x-xx-xxT07:10:13.583130Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use –explicit_defaults_for_timestamp server option (see documentation for more details).
201x-xx-xx T07:10:13.976219Z 0 [Warning] InnoDB: New log files created, LSN=45790
201x-xx-xx T07:10:14.085666Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
201x-xx-xx T07:10:14.161899Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: 1fa941f9-effd-11e5-b67d-000c2958cdc8.
201x-xx-xx T07:10:14.165534Z 0 [Warning] Gtid table is not ready to be used. Table ‘mysql.gtid_executed’ cannot be opened.
201x-xx-xx T07:10:14.168555Z 1 [Note] A temporary password is generated for root@localhost: q1SLew5T_6K,
注意最后一行,這也是和之有版本不同的地方织狐,它給了root一個(gè)初始密碼暂幼,后面要登錄的時(shí)候要用到這個(gè)密碼筏勒。
【配置】
將mysql/support-files下的my-default.cnf改名為my.cnf,拷到/etc下(或者考到{mysql}下旺嬉,然后作一個(gè)軟鏈接到/etc下):
cp /work/program/mysql/support-files/my-default.cnf /etc/my.cnf
my.cnf中關(guān)鍵配置:
[mysqld]
basedir = /work/program/mysql
datadir = /work/program/mysql/data
port = 3306
socket = /work/program/mysql/tmp/mysql.sock
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
注意管行,tmp目錄不存在,請(qǐng)創(chuàng)建之邪媳。
如果不把my.cnf拷到/etc下捐顷,運(yùn)行時(shí)會(huì)出現(xiàn):
mysqld: Can’t change dir to ‘/usr/local/mysql/data/’ (Errcode: 2 – No such file or directory)
這樣的出錯(cuò)提示,說(shuō)明它沒(méi)找到my.cnf中的配置雨效;而去找了程序編譯時(shí)的默認(rèn)安裝位置:/usr/local/mysql
四迅涮、運(yùn)行
【運(yùn)行服務(wù)器程序】
{mysql}/bin/mysqld_safe&
注:在這個(gè)啟動(dòng)腳本里已默認(rèn)設(shè)置–user=mysql;在腳本末尾加&表示設(shè)置此進(jìn)程為后臺(tái)進(jìn)程徽龟,區(qū)別就是在控制臺(tái)輸入bg叮姑,即可將當(dāng)前進(jìn)程轉(zhuǎn)入后臺(tái),當(dāng)前shell可進(jìn)行其他操作据悔。
【停止mysql】
{mysql}/bin/mysqladmin -uroot -p
(注意此時(shí)的root是指mysql的root用戶)
五传透、設(shè)置mysql以服務(wù)運(yùn)行并且開(kāi)機(jī)啟動(dòng)
將{mysql}/ support-files/mysql.server 拷貝為/etc/init.d/mysql并設(shè)置運(yùn)行權(quán)限
cp mysql.server /etc/init.d/mysql
chmod +x /etc/init.d/mysql
把mysql注冊(cè)為開(kāi)機(jī)啟動(dòng)的服務(wù)
chkconfig –add mysql
當(dāng)然也可以手動(dòng)進(jìn)行服務(wù)的開(kāi)啟和關(guān)閉:
/etc/init.d/mysql start
/etc/init.d/mysql stop
六、客戶端連接測(cè)試
{mysql}/bin/mysql -uroot -p
此時(shí)要求輸入密碼极颓,就是前面初始化時(shí)生成的密碼朱盐。
這時(shí)如果連接服務(wù)的時(shí)候出現(xiàn)錯(cuò)誤:
ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/tmp/mysql.sock’ (2)
則需要在在my.cnf中填加:
[client]
socket = /work/program/mysql/tmp/mysql.sock
連上后,在做任何操作前讼昆,mysql要求要改掉root的密碼后才能進(jìn)行操作托享。
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.
mysql> alter user ‘root’@’localhost’ identified by ‘xxxxxxx';
七骚烧、TIPS
【查看mysql是否運(yùn)行】
ps -ef|grep mysqld
netstat -lnp | grep -i mysql
【mysql啟動(dòng)時(shí)讀取配置文件my.cnf的順序】
可以運(yùn)行如下命令查看:
./bin/mysqld –verbose –help |more
Default options are read from the following files in the given order:
/etc/my.cnf /etc/mysql/my.cnf /usr/local/mysql/etc/my.cnf ~/.my.cnf
可以看到浸赫,啟動(dòng)時(shí)可以從上述目錄下讀取配置文件my.cnf。如果當(dāng)前my.cnf文件不位于上述位置赃绊,則必須考過(guò)去或做鏈接既峡。
MySQL 5.7新特性之Generated Column(函數(shù)索引) http://www.linuxidc.com/Linux/2016-02/128066.htm
升級(jí)到MySQL 5.7 解決分區(qū)問(wèn)題 http://www.linuxidc.com/Linux/2016-02/128060.htm
MySQL 5.7 完美的分布式事務(wù)支持 http://www.linuxidc.com/Linux/2016-02/128053.htm
MySQL 5.7 新特性詳解 http://www.linuxidc.com/Linux/2016-01/127636.htm
MySQL 5.7.11 發(fā)布下載 http://www.linuxidc.com/Linux/2016-02/128268.htm