騰訊雲CentOS系統安裝MySQL
騰訊雲CentOS7安裝MySQL
環境: 騰訊雲伺服器Centos
MySQL資料庫的安裝
- 通過wget下載並安裝MySQL官方的Yum Repository(這裡安裝的版本是5.7)
wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
- 使用 yum 安裝
yum -y install mysql57-community-release-el7-10.noarch.rpm
- 安裝MySQL伺服器
yum -y install mysql-community-server
在這裡可能會遇到“No match for argument: mysql-community-server”的錯誤
解決方法:
先執行如下命令在執行 “yum -y install mysql-community-server”
yum module disable mysql
MySQL登入即其配置
- 啟動MySQL
systemctl start mysqld.service
- 檢查MySQL執行狀態
systemctl status mysqld.service
正常結果如圖所示:
- 通過日誌檔案找到此時root使用者的密碼,以便登入
grep "password" /var/log/mysqld.log
如圖所示,獲取到的密碼:07f*1KGJRSM(
- 使用root使用者登入資料庫,密碼有是上一步驟得到的07f*1KGJRSM(
mysql -uroot -p
在這裡有時候會遇到1045報錯
這個錯誤有兩種情況
# 第一種
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
# 第二種
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
兩種情況的區別就在於你輸入的密碼正不正確,正確則是YES
報錯解析:在本地登入(localhost)的root使用者的拒絕訪問,輸入的使用者密碼是錯的(using password: NO)
報錯解析:在本地登入(localhost)的root使用者的拒絕訪問,輸入的使用者密碼是對的(using password: YES)
解決方法:
不論怎樣我們要先進入資料庫才能對資料庫進行修改和配置\
1) 開啟 配置檔案 /etc/my.cnf
vim /etc/my.cnf
2) 編輯my.cnf 在 [mysqld] 下新增 skip-grant-tables ,為了跳過輸入密碼,可以直接登入
skip-grant-tables
3)重啟mysql服務
service mysqld restart
4)重新登入mysql
# 此次登入設定了跳過密碼登入,不用輸入密碼直接回車即可
mysql -uroot -p
5)先選擇資料庫mysql,在修改資料庫密碼
# 選擇資料庫
use mysql;
# 重置密碼
update mysql.user set authentication_string=PASSWORD('newpassword') where User='root';
# 重新整理許可權
flush privileges;
# 退出登入
quit
6) 重新開啟 配置檔案 /etc/my.cnf 刪掉剛剛新增的 skip-grant-tables,並重啟mysql服務
# 開啟配置檔案
vim /etc/my.cnf
# 自行執行刪除操作
# 重啟mysql服務
service mysqld restart
7)此時則可以進行登入
# 資料庫root使用者登入
mysql -uroot -p
- 登入資料庫之後,此時什麼操作都執行不了,因為我們此次登入才算是第一次登入資料庫,
而MySQL首次登陸預設必須修改密碼後才能操作資料庫;
入果不修改直接操作就會報錯提醒你修改,如圖所示:
修改密碼:
# 修改密碼
ALTER USER 'root'@'localhost' IDENTIFIED BY 'your password';
# 重新整理許可權
flush privileges;
# 退出登入
quit
測試登入
# 登入資料庫
mysql -uroot -p
# 自行輸入密碼,登陸成功如圖所示
配置遠端登入
在配置之前先檢視下現在所有的使用者
登入資料庫後
# 選擇資料庫
use mysql;
# 從user表中獲取使用者及其使用者地址
select User, Host from mysql.user;
授權
建立遠端連線使用者並授權
# 建立遠端連線使用者並授權
grant all privileges on *.* to 'root'@'192.168.0.1' identified by 'password' with grant option;
解析:
grant :授權
all privileges :所有許可權
on:用於指定資料庫和表
*.:前一個*之資料庫名,後一個*是表名 ,*則代表全部
’root’@‘192.168.0.1’:@前的是使用者,例如這裡就是root使用者;@後的引號代表指定地址:如192.168.0.1就是指定這個ip登入,其他的ip無法登陸;也可以換成localhost,代表只能本地登入即*‘root’@‘localhost’;還可以換成%,表示任意ip都可以登入即’root’@’%’**
***注意:***該命令不僅僅是指定已存在使用者的訪問許可權,還可以直接建立新使用者並授權
為了方便許可權劃分,我在這裡不授權root使用者進行遠端登入,而是另外新建一個賬戶並指定授權一個數據庫,SQL命令如下:
# 建立資料庫
create database question_bank default character set utf8 collate utf8_general_ci;
# 建立使用者(ques_bank)並授權資料庫( question_bank)
grant all privileges on question_bank.* to 'ques_bank'@'%' identified by 'password' with grant option;
# 重新整理許可權
flush privileges;
測試
1)先在雲伺服器中檢查使用者表的存在
select User, Host from mysql.user;
2)windows遠端登入測試
# 命令列連線
mysql -h 119.29.176.133 -P 3306 -uques_bank -p
解析:
-h:後跟ip地址
-P:注意這裡是大寫的P,後跟埠號(一般預設為3306)
-u:後跟訪問使用者(這裡是ques_bank)
-p:注意這裡是小寫p,表示輸入密碼,當然也可直接把密碼跟在後面可以直接登入,但這樣會不安全,mysql也會給出警告
3)登入後檢查資料庫許可權
# 列印所有資料庫
show databases;
可以看到在windows端登入可以看到的資料出只有必要的資訊資料庫之外就只有question_bank這個資料庫了,與我之前授權的無出入。
至此為止,騰訊雲的MySQL的安裝配置,遠端連線全部完成。可以將改資料庫做作為雲端資料庫進行專案開發了。