安裝
-
下載Linux對應的MySQL https://dev.mysql.com/downloads/mysql/node
CentOS選擇Red Hat Enterprise Linuxmysql
-
在/usr/local/目錄下新建目錄mysqlsql
cd /usr/local/ mkdir mysql cd mysql/
-
打開文件傳輸工具將下載的壓縮包 mysql-8.0.17-1.el7.x86_64.rpm-bundle.tar 放到此目錄 解壓
tar -xvf mysql-8.0.17-1.el7.x86_64.rpm-bundle.tar
數據庫解壓出來8個文件vim
mysql-community-client-8.0.17-1.el7.x86_64.rpm mysql-community-common-8.0.17-1.el7.x86_64.rpm mysql-community-devel-8.0.17-1.el7.x86_64.rpm mysql-community-embedded-compat-8.0.17-1.el7.x86_64.rpm mysql-community-libs-8.0.17-1.el7.x86_64.rpm mysql-community-libs-compat-8.0.17-1.el7.x86_64.rpm mysql-community-server-8.0.17-1.el7.x86_64.rpm mysql-community-test-8.0.17-1.el7.x86_64.rpm
-
檢查是否有預裝數據庫mariadb
rpm -qa | grep mariadb
及是否預裝mysql運維檢測出來了就移除
rpm -e mariadb-libs-..... --nodeps
根據檢查出來的名字輸入tcp -
安裝ide
-
安裝 common
rpm -ivh mysql-community-common-8.0.17-1.el7.x86_64.rpm --nodeps --force
工具 -
安裝 libs
rpm -ivh mysql-community-libs-8.0.17-1.el7.x86_64.rpm --nodeps --force
url -
安裝 client
rpm -ivh mysql-community-client-8.0.17-1.el7.x86_64.rpm --nodeps --force
-
安裝 server
rpm -ivh mysql-community-server-8.0.17-1.el7.x86_64.rpm --nodeps --force
-
查看已安裝的包
rpm -qa | grep mysql
[root@izuf63okxpwhhlr3bu263dz mysql]# rpm -qa | grep mysql mysql-community-libs-8.0.17-1.el7.x86_64 mysql-community-server-8.0.17-1.el7.x86_64 mysql-community-common-8.0.17-1.el7.x86_64 mysql-community-client-8.0.17-1.el7.x86_64
-
-
初始化
-
經過一下命令完成mysql初始化
mysqld --initialize
若是報以下錯誤信息:
mysqld:error while loading shared libraries: libaio.so.1: cannot open shared object file: No shch file or directory
則安裝下 libaio.so.1 包
# 方案1 yum install -y libaio # 方案2,若是方案1安裝後,繼續初始化mysql沒成功,則執行該方案 yum install -y libaio.so.1
-
受權服務
# 給mysql目錄受權,通常不用操做,root用戶擁有全部權限 chown mysql:mysql /var/lib/mysql -R; # 啓動mysql服務 systemctl start mysqld.service; # 配置開機啓動 systemctl enable mysqld;
-
查看數據庫默認密碼
cat /var/log/mysqld.log | grep password
[root@izuf63okxpwhhlr3bu263dz mysql]# cat /var/log/mysqld.log | grep password 2019-10-07T08:45:06.207436Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: gfn,!V/j7tlz
-
拿到查詢出的密碼進行數據庫的登陸
mysql -u root -p gfn,!V/j7tlz
-
修改默認密碼
alter user 'root'@'localhost' identified with mysql_native_password by 'root';
修改後退出以修改後的密碼從新登陸 -
受權遠程訪問
create user 'root'@'%' identified with mysql_native_password by '123456'; grant all privileges on *.* to 'root'@'%' with grant option; flush privileges;
-
此時採用Navicat等可視化客戶端可能沒法鏈接,由於端口未對外開放
-
-
防火牆配置
# 查看防火牆狀態 systemctl status firewalld # 啓動防火牆,防火牆啓動後,除了22端口對外可以訪問,其餘端口軍不能使用,因此須要添加 systemctl start firewalld # 添加端口 firewall-cmd --zone=public --add-port=80/tcp --permanent firewall-cmd --zone=public --add-port=443/tcp --permanent firewall-cmd --zone=public --add-port=3306/tcp --permanent # 從新加載 firewall-cmd --reload
-
其餘
-
查看MySQL配置文件
# 默認的配置文件爲: /etc/my.cnf cat /etc/my.cnf
-
查看進程語句
ps -ef | grep mysql
-
大功告成
遺留問題
-
Linux下的MySQL數據庫大小寫敏感,因此SQL語句中的表名區分大小寫
-
忽略大小寫配置
$ vim /etc/my.cnf [mysqld] lower_case_table_names=1
可是在MySQL8 這樣不行,網上有說要在初始化的時候設置纔有效 --initialize --lower-case-table-names=1
可是我怎麼試也不行,只要啓動服務就報錯
[root@izuf63okxpwhhlr3bu263dz mysql]# systemctl start mysqld.service; Job for mysqld.service failed because the control process exited with error code. See "systemctl status mysqld.service" and "journalctl -xe" for details.
折騰半天只好讓它大小寫敏感去吧,反正我也不是運維
卸載
-
關閉mysql服務
[root@izuf63okxpwhhlr3bu263dz mysql]# service mysqld stop Redirecting to /bin/systemctl stop mysqld.service
-
查看安裝的mysql
[root@izuf63okxpwhhlr3bu263dz mysql]# rpm -qa | grep -i mysql mysql-community-libs-8.0.17-1.el7.x86_64 mysql-community-server-8.0.17-1.el7.x86_64 mysql-community-common-8.0.17-1.el7.x86_64 mysql-community-client-8.0.17-1.el7.x86_64
-
卸載列出來的全部mysql
rpm -ev mysql-community-......... --nodeps
-
刪除mysql相關
find / -name mysql rm -rf /var/lib/mysql/ ......
-
刪除my.cnf
rm -rf /etc/my.cnf
-
檢查卸載狀況
rpm -qa|grep -i mysql
爲空,大功告成