使用的是阿里雲提供的CentOS7.3版本,安裝的是mysql5.6.40版本。此次安裝采用解壓壓縮包並配置的方式。
1. 卸載自帶的Mariadb
Centos7將默認數據庫mysql替換成了Mariadb,由於由於mysql使用的是/etc/my.cnf作為配置,而Mariadb使用的也是 /etc/my.cnf,所以為避免沖突或者其他的干擾,我們首先需要卸載Mariadb。
rpm -qa|grep mariadb # 查詢出來已安裝的mariadb rpm -e --nodeps 文件名 # 卸載mariadb,文件名為上述命令查詢出來的文件 rm /etc/my.cnf # 刪除配置文件,一般情況下卸載之后即刪除,這里為保險,再次刪除一下
2. 解壓mysql壓縮包
壓縮包已下載並移動到安裝目錄
解壓
tar -zxvf mysql-5.6.40-linux-glibc2.12-x86_64.tar.gz
mv mysql-5.6.40-linux-glibc2.12-x86_64/ mysql-5.6.40 #重命名
3. 創建mysql用戶組
groupadd mysql #創建mysql用戶組 useradd -g mysql mysql #創建一個用戶名為mysql的用戶並加入mysql用戶組
4. 增加配置文件
可將/usr/local/mysql/support-files/下的my-default.cnf文件到/etc下,重命名為my.cnf,再進行修改,我這里直接在/etc下新建配置文件my.cnf,並對其進行編輯
/etc/my.cnf
[mysql] # 設置mysql客戶端默認字符集 default-character-set=utf8 socket=/var/lib/mysql/mysql.sock [mysqld] skip-name-resolve #設置3306端口 port = 3306 socket=/var/lib/mysql/mysql.sock # 設置mysql的安裝目錄 basedir=/usr/java/mysql/mysql-5.6.40 # 設置mysql數據庫的數據的存放目錄 datadir=/usr/java/mysql/mysql-5.6.40/data #錯誤日志 log-error = /usr/java/mysql/mysql-5.6.40/data/error.log # 允許最大連接數 max_connections=200 # 服務端使用的字符集默認為8比特編碼的latin1字符集,修改為utf8 character-set-server=utf8 # 創建新表時將使用的默認存儲引擎 default-storage-engine=INNODB lower_case_table_name=1 max_allowed_packet=16M
需要注意的是配置文件中【socket=/var/lib/mysql/mysql.sock】,Mysql客戶端和服務器端是通過初始化mysql.sock 文件來進行通信,這個文件夾需要手動創建
mkdir /var/lib/mysql #創建通信文件夾,用於存放mysql.socket文件 chmod -R 777 /var/lib/mysql #授權該文件夾,可以向其寫入文件
5. 安裝
進入到mysql安裝目錄,將該目錄的用戶及組修改為mysql,執行安裝
cd /usr/java/mysql/mysql-5.6.40 #進入安裝目錄 yum -y install autoconf #安裝需要的庫 yum -y install libaio #安裝需要的庫 chown -R mysql:mysql ./ #修改當前目錄擁有者為mysql用戶 ./scripts/mysql_install_db --user=mysql --basedir=/usr/java/mysql/mysql-5.6.40/ --datadir=/usr/java/mysql/mysql-5.6.40/data/ #安裝數據庫 chmod -R 777 /usr/java/mysql/mysql-5.6.40/data #數據文件夾授權,允許其向內讀寫數據
執行安裝數據庫的時候可能會提示還缺少依賴庫,可根據提示進行安裝完依賴庫,再安裝數據庫
6. 配置數據庫
chmod 644 /etc/my.cnf #授權給配置文件 cp ./support-files/mysql.server /etc/rc.d/init.d/mysqld #復制啟動腳本到資源目錄 chmod +x /etc/rc.d/init.d/mysqld #增加mysqld服務控制腳本執行權限 chkconfig --add mysqld #將mysqld服務加入到系統服務 chkconfig --list mysqld #檢查mysqld服務是否已經生效
顯示如下即表明mysqld服務已經生效,在2、3、4、5運行級別隨系統啟動而自動啟動,以后可以使用service命令控制mysql的啟動和停止
service mysqld start #啟動mysql服務 service mysqld stop #終止mysql服務
將mysql的bin目錄加入PATH環境變量
執行【vim /etc/profile】(對所有用戶生效)或者【vim ~/.bash_profile】(僅對當前登錄用戶生效),追加配置
export PATH=$PATH:/usr/java/mysql/mysql-5.6.40/bin
保存后使其立即生效
source /etc/profile
source ~/.bash_profile
7. 用戶及密碼配置
以root用戶登錄,默認沒有密碼
mysql -uroot -p
設置密碼
mysql>use mysql; mysql>update user set password=password('123') where user='root' and host='localhost'; mysql>flush privileges;
默認只允許root帳戶在本地登錄,如果要在其它機器上連接mysql,必須修改root允許遠程連接,或者添加一個允許遠程連接的帳戶,為了安全起見,這里添加一個新的帳戶
GRANT ALL PRIVILEGES ON *.* TO 'guest'@'%' IDENTIFIED BY '123456' WITH GRANT OPTION;
開放3306端口,進行本地及遠程連接成功。