Linux環境下安裝MySQL步驟詳解
本文轉載自微信公眾號「SQL數據庫開發」,作者丶平凡世界。轉載本文請聯系SQL數據庫開發公眾號。
MySQL的主從復制,很多小伙伴一直覺得配置起來很難,最近這段時間,我會以實操的方式帶大家一步一步的配置,在配置之前,咱們要先打好基礎環境,安裝MySQL。
整個MySQL安裝分為以下幾部分:
- 前言
- 安裝CentOS 7
- 下載MySQL
- 卸載Maria DB
- 創建mysql用戶和組
- MySQL安裝前準備
- 配置my.cnf文件
- 開始安裝MySQL
- 配置MySQL
- 配置防火墻
一、前言
以前在安裝MySQL時總會出現一些小問題,導致安裝進度過慢甚至失敗,有問題就解決問題就是了,通過搜索到一些教程和自己實際操作,總結了這套安裝教程,希望大家能一起進步。
二、安裝CentOS 7
我們下載CentOS 7的安裝包后,通過VMware來進行安裝,這里我們提供一些相關的安裝軟件,具體的安裝教程大家可以網上搜索一下,這里就不贅述了。
三、下載MySQL安裝包
這里我們使用的是社區版的MySQL 5.6.39,可以去MySQL官網下載對應的安裝文件,具體鏈接如下:
https://downloads.mysql.com/archives/community/
打開界面后,我們選擇我們需要的版本5.6.39,適應系統是64位的Linux-Generic,如下圖:
點擊右邊的下載即可。
以上提供的CentOS默認情況下是會直接連網的,可以直接在CentOS里面下載,你也可以使用FTP傳輸工具從本地將MySQL安裝包傳到CentOS。
四、卸載Maria DB
CentOS默認安裝的數據庫是Maria DB,我們要先將他卸載掉之后再安裝MySQL。
1、查詢出來已經安裝了的Maria DB
- [root@localhost ~]# rpm -qa|grep maria*
2、卸載Maria DB
- [root@localhost ~]# rpm -e --nodeps 文件名
注:文件名為上面查詢出來的文件名,如果有多個執行多次即可。然后再重新執行一下第1步的查詢命令確認是否都卸載完成。
3、刪除etc目錄下的my.cnf
- [root@localhost ~]# rm /etc/my.cnf
五、創建MySQL用戶和組
1、創建MySQL用戶組
- [root@localhost ~]# groupadd mysql
2、添加MySQL用戶并添加到MySQL用戶組
- [root@localhost ~]# useradd -g mysql mysql
六、MySQL安裝前準備
1、將下載好的壓縮包移動到/usr/local/ 目錄下(這里可以先切到壓縮包所在的目錄)
- [root@localhost ~]mv mysql-5.6.39-linux-glibc2.12-x86_64.tar.gz /usr/local/
2、解壓安裝包
- [root@localhost local]#tar -zxvf mysql-5.6.39-linux-glibc2.12-x86_64.tar.gz
3、將解壓后的文件夾重命名為mysql
- [root@localhost local]# mv mysql-5.6.39-linux-glibc2.12-x86_64 mysql
七、配置my.cnf文件
1、將/usr/local/mysql/support-files路徑下的my-default.cnf文件拷貝到/etc/my.cnf命名為my.cnf
- [root@localhost support-files]# cp my-default.cnf /etc/my.cnf
2、配置/etc目錄下的my.cnf文件
- [root@localhost support-files]# vim /etc/my.cnf
3、修改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/local/mysql
- # 設置mysql數據庫的數據的存放目錄
- datadir=/usr/local/mysql/data
- # 允許最大連接數
- max_connections=1000
- # 服務端使用的字符集默認為8比特編碼的latin1字符集
- character-set-server=utf8
- # 創建新表時將使用的默認存儲引擎
- default-storage-engine=INNODB
- lower_case_table_name=1
- max_allowed_packet=16M
八、開始安裝MySQL
1、進入到mysql文件目錄下,執行如下命令
- [root@localhost ~]# cd /usr/local/mysql
- [root@localhost mysql]# chown -R mysql:mysql ./ 修改當前目錄擁有者為mysql用戶
- [root@localhost mysql]# ./scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/ 安裝數據庫
注:命令中的中文為注釋,不用輸入。
2、如果出現以下錯誤:
- FATAL ERROR: please install the following Perl modules before executing ./scripts/mysql_install_db:Data::Dumper
解決辦法:
- [root@localhost ~]yum -y install autoconf //此包安裝時會安裝Data:Dumper模塊
安裝完成重新執行上面的安裝數據庫
3、修改當前data目錄的擁有者為mysql用戶
- [root@localhost mysql]# chown -R mysql:mysql data
九、配置MySQL
1、授予my.cnf最大權限
- [root@localhost ~]# chown 777 /etc/my.cnf
2、設置MySQL自啟動
復制啟動腳本到資源目錄
- [root@localhost mysql]# cp ./support-files/mysql.server /etc/rc.d/init.d/mysqld
3、增加mysqld服務控制腳本執行權限
- [root@localhost mysql]# chmod +x /etc/rc.d/init.d/mysqld
4、將mysqld服務加入到系統服務
- [root@localhost mysql]# chkconfig --add mysqld
5、檢查mysqld服務是否已經生效
- [root@localhost mysql]# chkconfig --list mysqld
出現如下結果說明生效
- mysqld 0:關 1:關 2:開 3:開 4:開 5:開 6:關
6、啟動mysqld服務
- [root@localhost mysql]# service mysqld start
啟動后出現如下異常
解決辦法
- [root@localhost lib]# mkdir /var/lib/mysql
- [root@localhost lib]# chmod 777 /var/lib/mysql
7、將mysql的bin目錄加入PATH環境變量,編輯 ~/.bash_profile文件
- [root@localhost mysql]# vim ~/.bash_profile
在文件最后添加如下信息:指定環境變量啟動程序位置,如果已經存在export命令,可以先刪除掉相關內容,直接替換成下面的命令。
- export PATH=$PATH:/usr/local/mysql/bin
執行下面的命令使修改的內容立即生效:
- [root@localhost mysql]# source ~/.bash_profile
8、以root賬戶登錄mysql,默認是沒有密碼的,要輸入密碼的時候直接回車即可。
- [root@localhost mysql]# mysql -u root -p
9、設置root賬戶密碼為123456(也可以修改成你要的密碼)
- mysql>use mysql
- mysql>update user set password=password('123456') where user='root' and host='localhost';
- mysql>flush privileges;
10、設置遠程主機登錄,使用下面命令查看和添加,注意下面的your username 和 your password改成你需要設置的用戶和密碼
- --查看用戶
- select Host,User,Password from mysql.user;
- --創建用戶
- create user test identified by '123456';
- --分配權限
- grant all privileges on *.* to 'test'@'%'identified by '123456' with grant option;
- --刷新
- flush privileges ;
- --修改指定用戶密碼
- update mysql.user set password=password('111111') where User="test" and Host="localhost";
- --刪除用戶
- delete from user where User='test' and Host='localhost';
十、配置防火墻
這個時候可以在本地使用管理工具嘗試連接虛擬機里面的mysql數據庫了。如果還是拒絕訪問,有可能是你的防火墻沒有關閉或部分端口沒開啟,可以進行如下配置:
- 查看已開放的端口(默認不開放任何端口)
- [root@localhost ~]#firewall-cmd --list-ports
- 查詢端口號80是否開啟!
- 查詢端口號
- [root@localhost ~]#firewall-cmd --query-port=80/tcp
- 開啟80端口
- [root@localhost ~]#firewall-cmd --zone=public --add-port=80/tcp --permanent
- 用同樣的方法開啟3306端口
- 重啟防火墻
- [root@localhost ~]#firewall-cmd --reload
- 停止防火墻
- [root@localhost ~]#systemctl stop firewalld.service
- 禁止防火墻開機啟動
- [root@localhost ~]#systemctl disable firewalld.service
至此,MySQL的整個配置就完成了,如果在安裝過程中遇到其他報錯,可以搜索一下對應的錯誤信息,以上是我在安裝過程中的一些配置內容,僅供參考。
下次我們再介紹主從配置的具體內容。