centos7中搭建mysql5.7資料庫
centos7中安裝mysql的步驟
- 安裝:
- 下載原始碼包,一般將原始碼包放在/usr/local/中;
cd /usr/local/
mkdir -p tools
cd tools
(這裡的版本可以隨時去mysql官網進行選擇)
- 檢視系統中是否已安裝 MySQL 服務
rpm -qa | grep mysql或yum list installed | grep mysql
- 如果已安裝則刪除 MySQL 及其依賴的包:yum -y remove mysql-libs.x86_64
- 安裝 mysql57-community-release-el7-8.noarch.rpm:rpm -ivh mysql57-community-release-el7-8.noarch.rpm
- 安裝mysql
$ yum install mysql-server
根據步驟安裝就可以了,不過安裝完成後,沒有密碼,需要重置密碼。
- 重置密碼:
mysql -u root;
報錯:ERROR 2002 (HY000): Can‘t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock‘ (2),原因是/var/lib/mysql的訪問許可權問題。下面的命令把/var/lib/mysql的擁有者改為當前使用者:
sudo chown -R openscanner:openscanner /var/lib/mysql
重啟服務:
service mysqld restart
再次登入:
mysql -u root
報錯:
此種情況是因為存在了預設密碼問題,解決:(最保險的是重置root密碼)
1、修改 /etc/my.cnf,在 [mysqld] 小節下新增一行:skip-grant-tables=1
這一行配置讓 mysqld 啟動時不對密碼進行驗證
2、重啟 mysqld 服務:systemctl restart mysqld
3、使用 root 使用者登入到 mysql:mysql -u root
4、切換到mysql資料庫,更新 user 表:
update user set authentication_string = password('root'), password_expired = 'N', password_last_changed = now() where user = 'root';
在之前的版本中,密碼欄位的欄位名是 password,5.7版本改為了 authentication_string
5、退出 mysql,編輯 /etc/my.cnf 檔案,刪除 skip-grant-tables=1 的內容
6、重啟 mysqld 服務,再用新密碼登入即可
- 修改root使用者對於訪問主機的許可權修改,user表中的root賬戶預設只允許本機localhost進行連結;需要進行如下修改:
mysql -u root -p;
輸入密碼;
use mysql;
update user set host=’%’where user=’root’;
- 開放防火牆:
vim /etc/sysconfig/iptables
新增以下內容:
-A INPUT -p tcp -m state --state NEW -m tcp --dport 3306 -j ACCEPT
儲存後重啟防火牆:
$ sudo service iptables restart
這樣從其它客戶機也可以連線上mysql服務了。
- 阿里雲安全組設定:
如果此時在其他客戶機上還是連結不上mysql,登入阿里雲,檢視例項的安全組有沒有為3306埠開啟規則;