一、 安裝
-
檢視是否已安裝
# 檢視MySQL版本 mysql --version # 檢視MySQL相關檔案 whereis mysql
-
若已安裝,解除安裝方法如下
# 解除安裝MySQL yum remove mysql
-
安裝
-
檢視yum源可安裝的MySQL版本
# 檢視可安裝的MySQL版本 yum repolist all | grep mysql
-
一個都沒有。。。因為某些原因,CentOS預設的yum源不提供MySQL了,所以要去官網獲取適合自己系統版本的MySQL版本的源 https://dev.mysql.com/downloads/repo/yum/
#檢視Centos版本的命令 cat /etc/issue
-
開始動手
# 新增MySQL5.7的源 wget http://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 # 重置密碼(密碼要滿足要求,就是要複雜一點) # 如果想要簡單的密碼,要修改密碼策略 參考 https://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 '使用者名稱'@'登入許可權'