centos7安装mysql5.7.24版本
參考:文章正在審核中... - 簡書
#1.先檢查是否有安裝過mysql
rpm -e mysql#2.檢查有沒有安裝,如有則刪除?
rpm -qa | grep mysql#3.卸載MariaDB
如果直接點擊rpm包安裝會得到錯誤提示。因為CentOS的默認數據庫已經不再是MySQL了,而是MariaDB,為什么呢?
MariaDB數據庫管理系統是MySQL的一個分支,主要由開源社區在維護,采用GPL授權許可。開發這個分支的原因之一是:甲骨文公司收購了MySQL后,有將MySQL閉源的潛在風險,因此社區采用分支的方式來避開這個風險。MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能輕松成為MySQL的代替品。
查看當前安裝的mariadb包:
rpm -qa | grep mariadb將它們統統強制性卸載掉:
rpm -e --nodeps mariadb-libs-5.5.52-1.el7.x86_64再次查詢的時候就已經沒有了
#4.現在開始正式安裝了
到這里要達到的目的:centos 7 里面沒有安裝mysql mariadb 純凈的 下面開始正式安裝
#5.安裝依賴包
yum -y install make gcc-c++ cmake bison-devel ncurses-devel libaio libaio-devel#6.下載mysql
MySQL :: Download MySQL Community Server
在/opt目錄下下載mysql(將/mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz放到 /opt 文件夾下)
wget https://downloads.mysql.com/archives/get/file/mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz#7.創建mysql用戶組
groupadd mysql#8.在mysql用戶組下創建用戶mysql
useradd mysql -g mysql#9.解壓mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz
tar xzvf mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz然后把mysql-5.7.24-linux-glibc2.12-x86_64名稱修改為mysql
mv mysql-5.7.24-linux-glibc2.12-x86_64/ mysql把mysql移到/usr/local/ 目錄下
mv mysql /usr/local/在/usr/local/mysql下創建data目錄
mkdir /usr/local/mysql/data#10.將mysql目錄及下面的文件、子目錄文件主改成mysql
chown -R mysql:mysql mysql/?#11.給與mysql目錄及下面的文件、子目錄755權限
chmod -R 755 mysql/#12.編譯安裝并初始化mysql,記住命令行末尾的密碼?
/usr/local/mysql/bin/mysqld --initialize --user=mysql --datadir=/usr/local/mysql/data --basedir=/usr/local/mysql紅色部分是初始化密碼,需要記住? l3=I-*3Aa9T,
#13.啟動mysql服務
/usr/local/mysql/support-files/mysql.server start#14.做個軟連接,重啟mysql服務
ln -s /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql重啟命令:
service mysql restart#15.做個軟鏈接,將安裝目錄下的mysql 放在/usr/bin 目錄下
ln -s /usr/local/mysql/bin/mysql /usr/bin注意:該鏈接的作用就是,可以在全局范圍內都可以使用mysql命令?
#16.登錄msyql,輸入密碼(密碼為步驟11初始化生成的密碼)
mysql -u root -p#17.修改密碼為123456
alter user 'root'@'localhost' identified by '123456';use mysql;update user set user.Host='%' where user.User='root';flush privileges;quit#18.編輯my.cnf,添加配置文件,配置內容為
vi /usr/local/mysql/my.cnf添加如下內容進行
[mysqld] port = 3306lower_case_table_names=1 character_set_server=utf8#中國標準時間, 會輸出08:00 default-time_zone = '+8:00'default-storage-engine=INNODB collation-server=utf8_general_ci# 查詢設置 # 開啟慢查詢日志(或設置1) slow_query_log=1 # # 指定日志文件保存路徑,不指定的話默認在數據庫文件目錄下 注意必須手動建文件 及權限 slow_query_log_file=/var/log/mysql_slow.log # # 指定達到多少秒才算慢查詢 微妙 long_query_time=5 # 記錄沒有使用索引的查詢語句 #log_queries_not_using_indexes=on # 示每分鐘允許記錄到slow log的且未使用索引的sql語句次數 #log_throttle_queries_not_using_indexes=10 # 日志存儲方式 log_output=FILEsql_mode = "STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"注意事項:這里如果改了默認路徑,這需要把my.cnf配置文件存放到/etc/my.cnf這個路徑下。否則這個配置文件不生效。
如何檢測配置文件是否生效,我們安裝的時候,mysql默認是區分大小寫的,所以我們只要進數據庫中使用以下語句查詢,如果lower_case_table_names為0,則代碼配置文件沒有生效。
show variables like "%case%";開啟遠程訪問:
grant all privileges on *.* to root@'%' identified by '123456'; flush privileges;最后關防火墻
systemctl stop firewalld.service#19.mysql 創建用戶并賦予用戶權限
#19.1.查看用戶
select user,host from mysql.user;#19.2.創建用戶
CREATE USER 'username'@'host' IDENTIFIED BY 'password';username:用戶名;
host:指定在哪個主機上可以登錄,本機可用localhost,%通配所有遠程主機;
password:用戶登錄密碼;
#19.3.授權
GRANT ALL PRIVILEGES ON . TO 'username'@'%' IDENTIFIED BY 'password';格式:grant 權限 on 數據庫名.表名 to 用戶@登錄主機 identified by “用戶密碼”;
.代表所有權;@ 后面是訪問MySQL的客戶端IP地址(或是 主機名) % 代表任意的客戶端,如果填寫 localhost 為本地訪問(那此用戶就不能遠程訪問該mysql數據庫了)。
注意:如何只分配讀寫表權限,不能刪庫?
例子:為food用戶分配food_safety庫所有權限
GRANT ALL PRIVILEGES ON food_safety.* TO 'food'@'%' IDENTIFIED BY 'food2021';然后創建另外一個用戶,只有增刪改查權限,但沒有刪庫權限
GRANT SELECT ON food_safety.* TO 'foodadmin'@'%' IDENTIFIED BY '123456'; GRANT UPDATE ON food_safety.* TO 'foodadmin'@'%' IDENTIFIED BY '123456'; GRANT INSERT ON food_safety.* TO 'foodadmin'@'%' IDENTIFIED BY '123456'; GRANT DELETE ON food_safety.* TO 'foodadmin'@'%' IDENTIFIED BY '123456'; /*授予用戶通過外網IP對于該數據庫的全部權限*/grant all privileges on `test`.* to 'test'@'%';/*授予用戶在本地服務器對該數據庫的全部權限*/grant all privileges on `test`.* to 'test'@'localhost'; grant select on test.* to 'user1'@'localhost'; /*給予查詢權限*/grant insert on test.* to 'user1'@'localhost'; /*添加插入權限*/grant delete on test.* to 'user1'@'localhost'; /*添加刪除權限*/grant update on test.* to 'user1'@'localhost'; /*添加權限*/flush privileges; /*刷新權限*/?#19.3.1.查看授權
SHOW GRANTS; SHOW GRANTS FOR 'food'@'%';?
#19.3.2.刪除權限?
第一種方式:
revoke all privileges on databasename.tablename from 'username'@'host';FLUSH PRIVILEGES;例子: 為food用戶刪除所有權限
REVOKE ALL PRIVILEGES ON food_safety.* FROM 'food'@'%';FLUSH PRIVILEGES;#19.4.刷新權限
FLUSH PRIVILEGES;參考:mysql新建用戶,修改權限_趙樹祥的博客-CSDN博客
MySQL用戶管理:添加用戶、授權、刪除用戶 - 陳樹義 - 博客園
#19.5.修改密碼?用set password命令
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('123456');SET PASSWORD FOR 'food'@'%' = PASSWORD('123456');
20.刪掉mysql用戶
drop
 ? ? ? ?
刪除已存在的用戶,默認刪除的是'XXX'@'%'這個用戶,如果還有其他的用戶如'XXX'@'localhost'等,不會一起被刪除。如果要刪除'XXX'@'localhost',使用drop刪除時需要加上host即drop user 'XXX'@'localhost'。
delete
delete from user where user='XXX' and host='localhost';例子:?drop user 'mego'@'localhost';
其中XXX為用戶名,localhost為主機名。
區別
drop不僅會將user表中的數據刪除,還會刪除其他權限表的內容。而delete只刪除user表中的內容,所以使用delete刪除用戶后需要執行FLUSH PRIVILEGES;刷新權限,否則下次使用create語句創建用戶時會報錯。
21.指定特定ip進行訪問數據庫
use mysql;update user set user.Host='localhost' where user.User='mego';grant all privileges on *.* to mego@'localhost' identified by '123456';flush privileges;quit步驟是先修改用戶的Host,然后再重新賦予一下權限。注意了,如果是指定特定的ip,則就算在本地也無法進行訪問。
如果是指定ip,則把localhost改成ip即可
這幾個地方需要修改:
?
總結
以上是生活随笔為你收集整理的centos7安装mysql5.7.24版本的全部內容,希望文章能夠幫你解決所遇到的問題。
 
                            
                        - 上一篇: centos7安装tomcat8.5.4
- 下一篇: centos7完全卸载删除nginx
