CentOS 7下MySQL 5.7安裝、配置與應用
5.7和之前版本的MySQL有一些不同,現把CentOS 7下MySQL 5.7安裝、配置與應用完整過程記下來,或許對新手來說有用。
本文描述的安裝是採用通用的二進位壓縮包(linux - Generic)以解壓方式安裝,相當於綠色安裝了。 一、下載通用安裝二進位包 先下載mysql安裝包:開啟 http://dev.mysql.com/downloads/mysql/選擇 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=45790201x-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.cnfmy.cnf中關鍵配置:[mysqld]basedir = /work/program/mysqldatadir = /work/program/mysql/dataport = 3306socket = /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 mysqldnetstat -lnp | grep -i mysql 【mysql啟動時讀取設定檔my.cnf的順序】可以運行如下命令查看:./bin/mysqld --verbose --help |moreDefault 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(函數索引)
升級到MySQL 5.7 解決分區問題
MySQL 5.7 完美的分散式交易支援
MySQL 5.7 新特性詳解
MySQL 5.7.11 發布下載
在 CentOS 7 中以命令列方式安裝 MySQL 5.7.11 for Linux Generic 二進位版本