1. 程式人生 > 資料庫 >騰訊雲CentOS系統安裝MySQL

騰訊雲CentOS系統安裝MySQL

騰訊雲CentOS7安裝MySQL

環境: 騰訊雲伺服器Centos

MySQL資料庫的安裝

  1. 通過wget下載並安裝MySQL官方的Yum Repository(這裡安裝的版本是5.7
	wget -i -c http://dev.mysql.com/get/mysql57-community-release-el7-10.noarch.rpm
  1. 使用 yum 安裝
 	yum -y install mysql57-community-release-el7-10.noarch.rpm
  1. 安裝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登入即其配置

  1. 啟動MySQL
	systemctl start  mysqld.service
  1. 檢查MySQL執行狀態
	systemctl status mysqld.service

正常結果如圖所示:
正常結果如圖所示

  1. 通過日誌檔案找到此時root使用者的密碼,以便登入
	grep "password" /var/log/mysqld.log

如圖所示,獲取到的密碼:07f*1KGJRSM(
如圖所示

  1. 使用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

,密碼錯誤會顯示NO
第一種
報錯解析:在本地登入(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

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
  1. 登入資料庫之後,此時什麼操作都執行不了,因為我們此次登入才算是第一次登入資料庫,
    而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的安裝配置,遠端連線全部完成。可以將改資料庫做作為雲端資料庫進行專案開發了。