在Linux機器上安裝MySQL

在Linux機器上安裝MySQL,仔細認真些就沒有問題。mysql

CentOS 7下MySQL 5.7安裝、配置與應用_數據庫技術_Linux公社-Linux系統門戶網站linux

搞不定的話,直接刪掉這個MySQL,而後把/etc/my.cnf也幹掉。從新安裝一邊,Linux系統沒有註冊表之類的玩意,安裝很簡單。sql

比較容易出錯的地方就是這個/etc/my.cnf:shell

[mysql]
# 設置mysql客戶端默認字符集
default-character-set=utf8 
socket=/usr/local/lib/mysql-5.7.18/tmp/mysql.sock
 
[mysqld]
skip-name-resolve
#設置3306端口
port = 3306 
user = mysql
socket=/usr/local/lib/mysql-5.7.18/tmp/mysql.sock # 設置mysql的安裝目錄 basedir=/usr/local/lib/mysql-5.7.18 # 設置mysql數據庫的數據的存放目錄 datadir=/usr/local/lib/mysql-5.7.18/data # 容許最大鏈接數 max_connections=200 # 服務端使用的字符集默認爲8比特編碼的latin1字符集 character-set-server=utf8 # 建立新表時將使用的默認存儲引擎 default-storage-engine=INNODB max_allowed_packet=16M sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

這裏的Socket很重要,配不對就會報這種錯:數據庫

Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2) 這類的,服務器

MySQL也分服務器和客戶端,服務器端先開,在指定的位置建個Socket,客戶端去連的時候,去找這個Socket。socket

若是沒設置好,確定是連不上的。分佈式

my.cnf裏原來有的:ide

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
# Settings user and group are ignored when systemd is used.
# If you need to run mysqld under a different user or group,
# customize your systemd unit file for mariadb according to the
# instructions in http://fedoraproject.org/wiki/Systemd函數

[mysqld_safe]
log-error=/var/log/mariadb/mariadb.log
pid-file=/var/run/mariadb/mariadb.pid

#
# include all files from the config directory
#
!includedir /etc/my.cnf.d

 

 

 

 

 

                                                                                                                                                  Winter_Rollback

 

 

 

CentOS 7下MySQL 5.7安裝、配置與應用_數據庫技術_Linux公社-Linux系統門戶網站

1、下載通用安裝二進制包
 
先下載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 這個包就好了。
 
2、創建用戶和目錄
 
創建用戶mysql,組mysql。後面mysql就使用這個用戶來運行(注意這也是mysql啓動腳本中默認的用戶,所以最好不要更名)。
#groupadd mysql
#useradd -r -g mysql mysql
(使用-r參數表示mysql用戶是一個系統用戶,不能登陸)
 
創建目錄/work/program,後面mysql就安裝在這個目錄下面。
#mkdir /work/program
 
3、安裝
 
【解壓】
將前面獲得的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
 
4、運行
 
【運行服務器程序】
#{mysql}/bin/mysqld_safe&
注:在這個啓動腳本里已默認設置--user=mysql;在腳本末尾加&表示設置此進程爲後臺進程,區別就是在控制檯輸入bg,便可將當前進程轉入後臺,當前shell可進行其餘操做。
【中止mysql】
{mysql}/bin/mysqladmin -uroot -p
(注意此時的root是指mysql的root用戶)
 
5、設置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
 
 
6、客戶端鏈接測試
 
#{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';
 
7、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/2016-02/128066.htm

升級到MySQL 5.7 解決分區問題  http://www.linuxidc.com/Linux/2016-02/128060.htm

MySQL 5.7 完美的分佈式事務支持 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 發佈下載 http://www.linuxidc.com/Linux/2016-02/128268.htm

在 CentOS 7 中以命令行方式安裝 MySQL 5.7.11 for Linux Generic 二進制版本  http://www.linuxidc.com/Linux/2016-03/129187.htm

更多CentOS相關信息見CentOS 專題頁面 http://www.linuxidc.com/topicnews.aspx?tid=14

本文永久更新連接地址http://www.linuxidc.com/Linux/2016-04/130414.htm

相關文章
相關標籤/搜索