阿里雲、騰訊雲、CentOS下的MySQL的安裝與配置詳解
- 2022 年 4 月 1 日
- 筆記
- Linux、雲伺服器
一、 安裝
-
查看是否已安裝
# 查看MySQL版本 mysql --version # 查看MySQL相關文件 whereis mysql
-
若已安裝,卸載方法如下
# 卸載MySQL yum remove mysql
-
安裝
-
查看yum源可安裝的MySQL版本
# 查看可安裝的MySQL版本 yum repolist all | grep mysql
-
一個都沒有。。。因為某些原因,CentOS默認的yum源不提供MySQL了,所以要去官網獲取適合自己系統版本的MySQL版本的源 //dev.mysql.com/downloads/repo/yum/
#查看Centos版本的命令 cat /etc/issue
-
開始動手
# 添加MySQL5.7的源 wget //dev.mysql.com/get/mysql80-community-release-el7-5.noarch.rpm sudo yum localinstall mysql80-community-release-el7-5.noarch.rpm -y
# 再次查看yum源MySQL版本 yum repolist enabled | grep mysql
# 安裝MySQL sudo yum install mysql-server -y # 查看安裝的版本 mysql --version
-
啟動MySQL資料庫
# 啟動MySQL sudo service mysqld start # 重啟MySQL sudo service mysqld restart # 查看MySQL狀態 sudo service mysqld status # 停止MySQL sudo service mysqld stop
-
二、 初始密碼、重置密碼、修改密碼
-
獲取初始密碼
# 獲取初始密碼 sudo grep 'temporary password' /var/log/mysqld.log
-
修改密碼
# 用初始密碼登錄 mysql -uroot -p # 重置密碼(密碼要滿足要求,就是要複雜一點) # 如果想要簡單的密碼,要修改密碼策略 參考 //www.cnblogs.com/liuhedong/p/11131693.html ALTER USER 'root'@'localhost' IDENTIFIED BY '密碼'; ## 我修改了長度和策略(策略為0,長度限制最新6位) Set Persist validate_password.policy = 0; Set Persist validate_password.length = 6;
-
忘記密碼重置密碼
# 查詢配置文件位置 mysql --help|grep 'my.cnf'
# 修改配置文件 在[mysqld]下添加參數skip-grant-tables vim /etc/my.cnf # 重啟MySQL sudo service mysqld restart
# 無密碼登錄 mysql -u root # 密碼設為空(試過了,不能修改密碼,只能為空) use mysql; update user set authentication_string = '' where user = 'root'; # 修改配置文件 刪除參數skip-grant-tables vim /etc/my.cnf # 重啟MySQL sudo service mysqld restart # 無密碼登錄 mysql -u root # 修改密碼 ALTER USER 'root'@'localhost' IDENTIFIED BY '密碼';
三、修改host實現遠程連接
-
背景
navicat還是連不上遠程伺服器的資料庫!!!!
-
原因
用戶Host屬性為localhost,就只能伺服器本地連接,所以連不上
-
解決辦法
將Host屬性改為通配符『%』,遠端就可以了
# 登錄MySQL mysql -uroot -p # 修改當前資料庫 use mysql; # 查看用戶的Host屬性 select User,Host from user; # 修改用戶屬性 update user set host = '%' where user = 'root'; # 刷新許可權 flush privileges;
四、 添加新用戶並授權
-
背景
大多數情況下,為了保證數據安全,我們的資料庫操作都不是用root用戶,某些用戶只能讀,某些用戶可寫可讀,某些用戶只能操作某一個資料庫而不是整個MySQL資料庫
-
解決辦法
# 新增用戶(密碼可以為空)
CREATE USER '用戶名'@'登錄許可權' IDENTIFIED BY '密碼';
# 授權
GRANT 許可權列表 ON 資料庫名.表名 TO '用戶名'@'登錄許可權'