CentOS 7下MySQL 5.7安裝

5.7和之前版本的MySQL有一些不同,現把CentOS 7下MySQL 5.7安裝、配置與應用完整過程記下來,或許對新手來說有用。

本文描述的安裝是採用通用的二進制壓縮包(linux – Generic)以解壓方式安裝,相當於綠色安裝了。

一、下載通用安裝二進制包

先下載mysql安裝包:打開 http://dev.mysql.com/download...
選擇 linux – Generic並在其下選擇
Linux – Generic (glibc 2.5) (x86, 64-bit), Compressed TAR Archive
進行下載。可以先下載到一個臨時目錄裏,解壓後,得到兩個包:
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 這個包就行了。

二、建立用戶和目錄

建立用戶mysql,組mysql。後面mysql就使用這個用戶來運行(注意這也是mysql啓動腳本中默認的用戶,因此最好不要改名)。

groupadd mysql

useradd -r -g mysql mysql

(使用-r參數表示mysql用戶是一個系統用戶,不能登錄)

建立目錄/work/program,後面mysql就安裝在這個目錄下面。

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

這時在program下得到的目錄名很長,如果不想改名,則可以建立一個聯接:

ln -s mysql-5.7.11-linux-glibc2.5-x86_64 mysql

此後就可以用/work/program/mysql來找到mysql的安裝目錄了

注意,如果mysql目錄下沒有data目錄,手動建一個。

【目錄權限設置】
將mysql及其下所有的目錄所有者和組均設爲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

注意:

  1. data目錄解壓後沒有,需要手動建立(見上文);
  2. mysql5.7和之前版本不同,很多資料上都是這個命令

…../scripts/mysql_install_db –user=mysql
而5.7版本根本沒有這個。

初始化成功後出現如下信息:
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一個初始密碼,後面要登錄的時候要用到這個密碼。

【配置】
將mysql/support-files下的my-default.cnf改名爲my.cnf,拷到/etc下(或者考到{mysql}下,然後作一個軟鏈接到/etc下):

cp /work/program/mysql/support-files/my-default.cnf /etc/my.cnf

my.cnf中關鍵配置:
[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目錄不存在,請創建之。

如果不把my.cnf拷到/etc下,運行時會出現:
mysqld: Can’t change dir to ‘/usr/local/mysql/data/’ (Errcode: 2 – No such file or directory)
這樣的出錯提示,說明它沒找到my.cnf中的配置;而去找了程序編譯時的默認安裝位置:/usr/local/mysql

四、運行

【運行服務器程序】

{mysql}/bin/mysqld_safe&

注:在這個啓動腳本里已默認設置–user=mysql;在腳本末尾加&表示設置此進程爲後臺進程,區別就是在控制檯輸入bg,即可將當前進程轉入後臺,當前shell可進行其他操作。
【停止mysql】
{mysql}/bin/mysqladmin -uroot -p
(注意此時的root是指mysql的root用戶)

五、設置mysql以服務運行並且開機啓動

將{mysql}/ support-files/mysql.server 拷貝爲/etc/init.d/mysql並設置運行權限

cp mysql.server /etc/init.d/mysql

chmod +x /etc/init.d/mysql

把mysql註冊爲開機啓動的服務

chkconfig –add mysql

當然也可以手動進行服務的開啓和關閉:

/etc/init.d/mysql start

/etc/init.d/mysql stop

六、客戶端連接測試

{mysql}/bin/mysql -uroot -p

此時要求輸入密碼,就是前面初始化時生成的密碼。
這時如果連接服務的時候出現錯誤:
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的密碼後才能進行操作。
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是否運行】
ps -ef|grep mysqld
netstat -lnp | grep -i mysql

【mysql啓動時讀取配置文件my.cnf的順序】
可以運行如下命令查看:
./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
可以看到,啓動時可以從上述目錄下讀取配置文件my.cnf。如果當前my.cnf文件不位於上述位置,則必須考過去或做鏈接。
MySQL 5.7新特性之Generated Column(函數索引) http://www.linuxidc.com/Linux...

升級到MySQL 5.7 解決分區問題 http://www.linuxidc.com/Linux...

MySQL 5.7 完美的分佈式事務支持 http://www.linuxidc.com/Linux...

MySQL 5.7 新特性詳解 http://www.linuxidc.com/Linux...

MySQL 5.7.11 發佈下載 http://www.linuxidc.com/Linux...

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章