操作系統(tǒng): CentOS 7.8 x86_64
MySQL版本: 5.7.33
rpm方式
1. 檢查服務(wù)器是否已經(jīng)安裝MySQL
yum list installed | grep mysql
- 查看當(dāng)前的啟用的 MySQL 版本:
yum repolist enabled | grep mysql
- 如果檢查出來有的話就使用下面這個(gè)命令刪除
yum -y remove mysql-libs.x86_64
2. 下載MySQL5.7 rpm源
wget http://repo.mysql.com/mysql57-community-release-el7-8.noarch.rpm
3. 安裝下載好的rpm包
rpm -ivh mysql57-community-release-el7-8.noarch.rpm
- 安裝成功后,會(huì)在
/etc/yum.repos.d/目錄下增加兩個(gè)文件
4. 安裝MySQL
yum install mysql-server
安裝過程遇到提示,一直“y”確認(rèn)即可
5. 啟動(dòng)MySQL服務(wù)
- 啟動(dòng)MySQL服務(wù)
service mysqld start
- 查看MySQL服務(wù)狀態(tài)
service mysqld status
6. 查看初始密碼
- 找到控制臺(tái)
temporary password后面輸出的臨時(shí)密碼,保存?zhèn)溆?/li>
grep "password" /var/log/mysqld.log
7. 登錄MySQL
- 登錄MySQL
mysql -u root -p
輸入你剛才查詢出來的初始密碼
8. 修改密碼
- 1.使用數(shù)據(jù)庫(kù),前提先使用
step7登錄成功
use mysql;
- 2.修改密碼
ALTER USER 'root'@'localhost' IDENTIFIED BY '你的新密碼';
密碼也有默認(rèn)密碼策略,密碼包括:數(shù)字、大寫字母、小寫字母、特殊符號(hào)、長(zhǎng)度8位以上。
9. 開啟MySQL遠(yuǎn)程訪問權(quán)限 允許遠(yuǎn)程連接
- 選擇1:設(shè)置
root用戶 可以在任意 IP 下被訪問:
grant all privileges on *.* to 'root'@"%" identified by "新密碼" with grant option;
- 選擇2: 設(shè)置
root用戶可以在本地被訪問:
grant all privileges on *.* to 'root'@"localhost" identified by "新密碼" with grant option;
10. 刷新權(quán)限
上面的操作完畢后,一定記得執(zhí)行以下命令
flush privileges;
11. 用戶設(shè)置
注意:根據(jù)自己實(shí)際情況處理,是否為新項(xiàng)目創(chuàng)建普通用戶,授權(quán)某個(gè)數(shù)據(jù)庫(kù)等等,以下為常用操作命令。
1. 新建用戶
- 創(chuàng)建一個(gè)
普通用戶xx ,密碼是xxx
CREATE USER 'xx'@'localhost' IDENTIFIED BY 'xxx';
此處
'localhost'是指該用戶只能在本地登錄,不能在另外一臺(tái)機(jī)器上遠(yuǎn)程登錄。
如果想遠(yuǎn)程登錄的話,將"localhost"改為"%",表示在任何一臺(tái)電腦上都可以登錄。也可以指定某臺(tái)機(jī)器可以遠(yuǎn)程登錄。
- 使授權(quán)立刻生效
flush privileges;
2. 查詢用戶
select user,host from mysql.user;
3. 刪除用戶
- 刪除用戶 "test"
drop user test@localhost;
- 若創(chuàng)建的用戶允許任何電腦登陸,刪除用戶如下
drop user test@'%';
4. 更改密碼
- 方法1,密碼實(shí)時(shí)更新;修改用戶“test”的密碼為“123456”
set password for test =password('123456');
- 方法2,需要刷新;修改用戶“test”的密碼為“123456”
update mysql.user set password=password('123456') where user='test';
## 刷新
flush privileges;
5. 用戶分配權(quán)限
- 授予用戶test通過外網(wǎng)IP對(duì)數(shù)據(jù)庫(kù)“testdb”的全部權(quán)限
grant all privileges on 'testdb'.* to 'test'@'%' identified by '123456';
- 刷新權(quán)限
flush privileges;
如果給某個(gè)用戶授予表數(shù)據(jù)
CREATE,ALTER,DROP,SELECT,INSERT,UPDATE,DELETE的遠(yuǎn)程訪問的權(quán)限,這個(gè)賬號(hào)一般用于提供給實(shí)施的系統(tǒng)訪問以下是:授予用戶“test”通過外網(wǎng)IP對(duì)于該數(shù)據(jù)庫(kù)“testdb”中表的創(chuàng)建、修改、刪除權(quán)限,以及表數(shù)據(jù)的增刪查改權(quán)限的示例語句
grant create,alter,drop,select,insert,update,delete on testdb.* to test@'%';
注意:修改完權(quán)限以后 一定要刷新服務(wù),或者重啟服務(wù),刷新服務(wù)用:
flush privileges;
12. 退出
exit;
13. 安裝完成后置操作和常用命令
1. 檢查是否已經(jīng)安裝了開機(jī)自動(dòng)啟動(dòng)
systemctl list-unit-files | grep mysqld
如果顯示以下內(nèi)容說明已經(jīng)完成自動(dòng)啟動(dòng)安裝
mysqld.service enabled
2. 設(shè)置開機(jī)啟動(dòng)Mysql
systemctl enable mysqld.service
3. 設(shè)置開啟服務(wù)
systemctl start mysqld.service
4. 開啟阿里云安全組端口策略
進(jìn)入控制臺(tái),網(wǎng)絡(luò)和安全->安全組->配置規(guī)則,將MySQL監(jiān)聽端口開放即可
5. 卸載
因?yàn)榘惭b了Yum Repository,以后每次yum操作都會(huì)自動(dòng)更新,需要把這個(gè)卸載掉:
yum -y remove mysql57-community-release-el7-8.noarch
6. 查看端口監(jiān)聽狀態(tài)
netstat -an|grep 3306
根據(jù)占用情況,找到my.cnf,一般在/etc/mysql/下面,具體情況根據(jù)實(shí)際而定。注釋掉其中的bind-address屬性。
前提,先登錄數(shù)據(jù)庫(kù) mysql -u root -p
7. 查看狀態(tài)
mysql命令登錄后,通過status命令查詢版本信息
mysql -u root -p
//輸入密碼,登錄成功后
mysql> status;
mysql命令登錄后,通過version()查詢版本信息
mysql -u root -p
//輸入密碼,登錄成功后
mysql> select version();
8. 臨時(shí)關(guān)閉防火墻
停止firewall
systemctl stop firewalld.service
9. 常用命令
systemctl start mysqld #啟動(dòng)mysqld
systemctl stop mysqld #停止mysqld
systemctl restart mysqld #重啟mysqld
systemctl enable mysqld #設(shè)置開機(jī)啟動(dòng)
systemctl status mysqld #查看 MySQL Server 狀態(tài)
10. 用戶設(shè)置
- 創(chuàng)建一個(gè)
普通用戶xx ,密碼是xxx
CREATE USER 'xx'@'localhost' IDENTIFIED BY 'xxx';
此處
'localhost'是指該用戶只能在本地登錄,不能在另外一臺(tái)機(jī)器上遠(yuǎn)程登錄。
如果想遠(yuǎn)程登錄的話,將"localhost"改為"%",表示在任何一臺(tái)電腦上都可以登錄。
也可以指定某臺(tái)機(jī)器可以遠(yuǎn)程登錄。
- 給這個(gè)用戶授予
SELECT,INSERT,UPDATE,DELETE的遠(yuǎn)程訪問的權(quán)限,這個(gè)賬號(hào)一般用于提供給實(shí)施的系統(tǒng)訪問
GRANT SELECT,INSERT,UPDATE,DELETE ON . TO 'xx'@'%';
- 創(chuàng)建一個(gè)
管理員用戶admin 賬號(hào) ,密碼是 123456
CREATE USER 'admin'@'%' IDENTIFIED BY 'xxx';
- 給這個(gè)用戶授予所有的遠(yuǎn)程訪問的權(quán)限。這個(gè)用戶主要用于管理整個(gè)數(shù)據(jù)庫(kù)、備份、還原等操作。
GRANT ALL PRIVILEGES ON *.* TO 'admin'@'%';
- 使授權(quán)立刻生效
flush privileges;
11. 默認(rèn)配置文件路徑
配置文件: /etc/my.cnf
日志文件: /var/log//var/log/mysqld.log
服務(wù)啟動(dòng)腳本: /usr/lib/systemd/system/mysqld.service
socket文件: /var/run/mysqld/mysqld.pid