參考:https://www.cnblogs.com/coding-one/p/11698271.html
1.安裝之前的準(zhǔn)備
1.檢查是否安裝了mysql:rpm -qa |grep mysql-server
2.卸載mariadb:由于MySQL在CentOS7中收費(fèi)了,所以已經(jīng)不支持MySQL了曹货,取而代之在CentOS7內(nèi)部集成了mariadb嫁乘,而安裝MySQL的話會和MariaDB的文件沖突,所以需要先卸載掉MariaDB.
使用rpm 命令查找出要刪除的mariadb文件瑟啃;
rpm -pa | grep mariadb
可能的顯示結(jié)果如下:
mariadb-libs-5.5.56-2.el7.x86_64
刪除上面的程序
rpm -e mariadb-libs-5.5.56-2.el7.x86_64
2.官網(wǎng)下載mysql的yum源
centos的yum 源中默認(rèn)是沒有mysql的,所以我們需要先去官網(wǎng)下載mysql的repo源并安裝;
2.1. 訪問官網(wǎng),查看最新安裝包
https://dev.mysql.com/downloads/repo/yum/
2.2. 選擇版本咕宿,點(diǎn)擊“download”
2.3. 登錄
如果是未登錄狀態(tài),會要求登錄蜡秽。此時會跳轉(zhuǎn)到 oracle 單點(diǎn)登錄頁面府阀,登錄自己的 oracle 賬號即可(沒有賬號就注冊一個,現(xiàn)在下載 oracle 的產(chǎn)品都需要登錄载城,比如 jdk)
2.4. 登錄后回到上述頁面肌似,右鍵選擇的版本對應(yīng)的download按鈕,點(diǎn)擊“復(fù)制鏈接地址菜單項(xiàng)”
2.5. 登錄Linux服務(wù)器诉瓦,進(jìn)入到某個目錄(如 /usr/local/src)川队,使用 wget 下載源安裝包.
wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
3.安裝mysql的yum源
3.1安裝 yum repo 文件
rpm -ivh mysql80-community-release-el7-3.noarch.rpm
執(zhí)行結(jié)果會在/etc/yum.repos.d/目錄下生成兩個repo文件mysql-community.repo mysql-community-source.repo
3.2. 更新yum緩存
yum clean all
yum makecache
4.安裝mysql服務(wù)器
4.1. 選擇版本
當(dāng)我們在使用yum安裝mysql時,yum默認(rèn)會從yum倉庫中安裝mysql最新的GA版本睬澡;如何選擇自己的版本固额;
4.1.1. 查看mysql yum倉庫中mysql版本,使用如下命令
yum repolist all | grep mysql
可以看到mysql8是可用的煞聪,其它是禁用的斗躏,我正好是需要安裝mysql8,所以不用管了昔脯。如果想要安裝其它版本可以修改啄糙。
4.1.2. 修改禁用啟用規(guī)則
yum-config-manager --enable mysql57-community
如果命令無效笛臣,可以直接編輯 mysql repo。
4.2. 安裝mysql服務(wù)
yum install mysql-community-server
中間有需要確認(rèn)的步驟就一直 “y” 就行了隧饼。
5.啟動授權(quán)
5.1.初始化數(shù)據(jù)庫
mysqld --initialize --console
5.2.目錄授權(quán)沈堡,否則啟動失敗
chown -R mysql:mysql /var/lib/mysql/
5.3 啟動服務(wù),測試連接
啟動:systemctl start mysqld.service
停止:systemctl stop mysqld.service
重啟:systemctl restart mysqld.service
查看服務(wù)狀態(tài):systemctl status mysqld.service
6.基本連接配置
1.在/var/log/mysqld.log下查看臨時密碼
2.臨時密碼登陸數(shù)據(jù)庫修改密碼
mysql -u root -p + 回車鍵
輸入臨時密碼(輸入時不會顯示出來燕雁,輸入完直接回車)
alter USER 'root'@'localhost' IDENTIFIED BY '新密碼(必須包含兩者:數(shù)字大小寫字母特殊字符)';
3.授權(quán)遠(yuǎn)程登陸
查看所有用戶是否可以遠(yuǎn)程連接诞丽,依次執(zhí)行下列命令:
show databases;
use mysql;
select host, user, authentication_string, plugin from user;
可以看到root用戶的host,默認(rèn)應(yīng)該顯示的 localhost拐格,只支持本地訪問僧免,不允許遠(yuǎn)程訪問。注意在初始的時候只有在mysql數(shù)據(jù)庫里才有這張表捏浊,其他數(shù)據(jù)庫里面沒有這張表懂衩,所以要切換到mysql數(shù)據(jù)庫:
4.修改root用戶host值,使root用戶可以遠(yuǎn)程登錄
update user set host = "%" where user='root';
flush privileges;
5.創(chuàng)建用戶
1.創(chuàng)建用戶
命令:
CREATE USER 'username'@'host' IDENTIFIED BY 'password';
說明:
username: 你將創(chuàng)建的用戶名
host: 指定該用戶在哪個主機(jī)上可以登陸呛伴,如果是本地用戶可用localhost勃痴,如果想讓該用戶可以從任意遠(yuǎn)程主機(jī)登陸,可以使用通配符%
password:該用戶的登陸密碼热康,密碼可以為空沛申,如果為空則該用戶可以不需要 密碼登陸服務(wù)器
例子:
CREATE USER 'dog'@'localhost' IDENTIFIED BY '123456';
CREATE USER 'quanran'@'192.168.1.101_' IDENDIFIED BY '123456';
CREATE USER 'quanran'@'%' IDENTIFIED BY '123456';
CREATE USER 'quanran'@'%' IDENTIFIED BY '';
CREATE USER 'quanran'@'%';
2.創(chuàng)建數(shù)據(jù)庫
create database `mmall` default character set utf8 collate utf8_general_ci;
3.授權(quán)
命令:
GRANT privileges ON databasename.tablename TO 'username'@'host'
說明:
privileges:用戶的操作權(quán)限,如SELECT姐军,INSERT铁材,UPDATE等,如果要授予所的權(quán)限則使用ALL
databasename:數(shù)據(jù)庫名
tablename:表名奕锌,如果要授予該用戶對所有數(shù)據(jù)庫和表的相應(yīng)操作權(quán)限則可用 表示著觉,如.*
例子:
GRANT SELECT, INSERT ON test.user TO 'quanran'@'%';
GRANT ALL ON *.* TO 'quanran'@'%';
GRANT ALL ON maindataplus.* TO 'quanran'@'%';
Grant all privileges ON mmall.* to 'mmall'@'%';
注意:
用以上命令授權(quán)的用戶不能給其它用戶授權(quán),如果想讓該用戶可以授權(quán)惊暴,用以下命令:
GRANT privileges ON databasename.tablename TO 'username'@'host' WITH GRANT OPTION;
#查看用戶權(quán)限
show grants for 'nextcloud'@'%';
or
select * from mysql.user where user='root' \G;
解決mysql8報(bào)錯:ERROR 1410 (42000): You are not allowed to create a user with GRANT:https://www.runoob.com/w3cnote/mysql8-error-1410-42000-you-are-not-allowed-to-create-a-user-with-grant.html
4.設(shè)置與更改用戶密碼
命令:
SET PASSWORD FOR 'username'@'host' = PASSWORD('newpassword');
如果是當(dāng)前登陸用戶用:
SET PASSWORD = PASSWORD("newpassword");
例子:
SET PASSWORD FOR 'quanran'@'%' = PASSWORD("123456");
5.撤銷用戶權(quán)限
命令:
REVOKE privilege ON databasename.tablename FROM 'username'@'host';
說明:
privilege, databasename, tablename:同授權(quán)部分
例子:
REVOKE SELECT ON *.* FROM 'quanran'@'%';
注意:
1.如果用 GRANT SELECT ON test.user TO 'quanran'@'%' 給用戶’quanran’@’%‘授權(quán)饼丘,則使用 REVOKE SELECT ON . FROM 'quanran'@'%'; 并不能撤銷該用戶對test數(shù)據(jù)庫中user表的SELECT 操作。
2.如果用 GRANT SELECT ON . TO 'quanran'@'%'; 給’quanran’@’%'授權(quán)辽话,則使用 REVOKE SELECT ON test.user FROM 'quanran'@'%'; 命令也不能撤銷該用戶對test數(shù)據(jù)庫中user表的Select權(quán)限肄鸽。
3.具體信息可以用命令SHOW GRANTS FOR 'quanran'@'%'; 查看。
6.刪除用戶
命令:
DROP USER 'username'@'host';
6.navicat連接mysql
由于mysql8的加密方式和Navicat不一樣油啤,所以此時要想通過navicat訪問數(shù)據(jù)庫典徘,需要添加下面的句子:
alter user mmall identified with mysql_native_password by 'mmall';
7.mysql配置文件修改
vim /etc/my.cnf
添加:
character-set-server=utf8
default-character-set=utf8
1.設(shè)置開機(jī)自啟動
--設(shè)置mysql開機(jī)自啟動
systemctl enable mysqld
--查看系統(tǒng)當(dāng)前默認(rèn)啟動項(xiàng)目的方法
systemctl list-unit-files
2.執(zhí)行sql語句
如果我們創(chuàng)建的用戶數(shù)據(jù)庫至允許在本地登陸益咬,但是本地不能安裝圖形戶界面如逮诲,navicat,此時我們就需要在命令行當(dāng)中執(zhí)行sql語句
1.登陸數(shù)據(jù)庫
2.執(zhí)行說起來語句
mysql> source /developer/mmall.sql
--/developer/mmall.sql是sql語句所在的位置
#######修改密碼安全等級
https://blog.csdn.net/qq_33454884/article/details/98853338