1. 程式人生 > 其它 >CentOS安裝MySQL

CentOS安裝MySQL

技術標籤:MySQLcentoslinuxmysql

下載mysql yum包

官方下載地址:https://dev.mysql.com/downloads/repo/yum/

或者直接使用wget下載(注意:下載mysql需要有oracle賬號,oracle公司產品都需要oracle賬號才能下載)

下載自己需要的mysql版本就行,下載連線可以通過瀏覽器獲取

在這裡插入圖片描述

wget https://repo.mysql.com//mysql80-community-release-el7-3.noarch.rpm

安裝軟體源

rpm -Uvh https://repo.mysql.com//mysql80-community-release-el7-3.noarch.rpm

安裝MySQL

yum install mysql-community-server
# 安裝過程中如果出現y/n的話就一直y就行了,如果嫌麻煩可以用下面這個命令來安裝
yum install -y mysql-community-server

注意:

如果yum命令報Another app is currently holding the yum lock; waiting for it to exit…

可以通過強制關掉yum程序:

rm -f /var/run/yum.pid

啟動&配置

# 啟動
service mysqld start
# 檢視執行狀態
service mysqld status

看到綠色的running代表已經啟動成功,用紅色框標識出來的便是
在這裡插入圖片描述
然後mysql在5.6之後的版本都會預設生成一個預設密碼,是root使用者的。通過如下命令檢視密碼

grep 'temporary password' /var/log/mysqld.log

用紅色框標識出來的便是預設設定的密碼

在這裡插入圖片描述

進入MySQL

執行完如下命令之後輸入預設密碼

mysql -u root -p

修改密碼

由於MySQL8新提供了一種密碼加密方式caching-sha2-password,且為預設,目前很多客戶端都不支援,所以我們在建立新角色使用者的時候可以指定其為mysql_native_password,原來的root賬戶等不去做任何改變

8.0密碼策略要求密碼必須包含字母(大小寫都行),數字,特殊字元,密碼長度不能小於8

ALTER USER `root`@`localhost` IDENTIFIED BY '新密碼';

退出MySQL

exit
# 或者
quit

然後使用新密碼登入就行

建立使用者和分配許可權

建立使用者前必須修改root賬號預設密碼

# 建立一個test使用者(一般情況下root使用者只在本地環境下使用),密碼是29dIg;2^,資料庫的密碼最好設定得連自己都記不住。
CREATE USER 'test'@'%' IDENTIFIED WITH mysql_native_password BY '29dIg;2^';
# 授權資料庫給使用者,並設定所有ip都可以遠端連線
# 如果只授予使用者某些資料庫的話就把*.*改成 資料庫名稱.*  意思就是 資料庫.表
# 如果只授予使用者某些許可權的話,比如只能讀不能寫,就把GRANT ALL改成GRANT SELECT
GRANT ALL ON *.* TO 'test'@'%';
# 當然,你也可以撤銷授權,用法和授權幾乎都是一樣的。
REVOKE ALL ON *.* from 'test'@'%';

最後使設定立即生效

flush privileges;

注意:

安裝完後別忘了開放對應埠,一般是3306,阿里雲可以通過安全組開放,本地虛擬機器則通過防火牆命令開放

CentOS7.0以上預設使用firewall防火牆

# 查詢埠是否開放
firewall-cmd --query-port=3306/tcp
# 開放3306埠
firewall-cmd --permanent --add-port=3306/tcp
# 重啟防火牆(修改配置後要重啟防火牆)
firewall-cmd --reload

CentOS7.0以下使用iptables防火牆

# 開啟3306埠
vim /etc/sysconfig/iptables
# 加入如下程式碼(按i進入編輯模式)
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT
# 儲存退出後重啟防火牆 (按ESC輸入:wq按ENTER儲存退出)
service iptables restart