CentOS7配置mysql8免安裝版
1、下載或上傳mysql安裝包
下載
推薦使用清華的映象,下載速度非常的快
下載前,瀏覽器開啟映象網站確認下版本號有沒有更新
wget https://mirrors.tuna.tsinghua.edu.cn/mysql/downloads/MySQL-8.0/mysql-8.0.26-el7-x86_64.tar.gz
上傳
使用xftp等軟體將下載好的tar包上傳到/opt目錄下
2、檢查是否安裝過mysql
ps:因為以前用yum安裝過,所以先用yum解除安裝。如果不是此方式或者沒安裝過則跳過
[root@centos7 opt]# yum remove mysql
檢視是否有mysql依賴
[root@service /]# rpm -qa | grep mysql
如果有則解除安裝
//普通刪除模式
rpm -e xxx(mysql_libs)
//強力刪除模式,如果上述命令刪除時,提示有依賴其他檔案,則可以用該命令對其進行強力刪除
rpm -e --nodeps xxx(mysql_libs)
也可以增加以下步驟保險一點
1.檢視是否有安裝過mysql
rpm -qa | grep -i mysql
2.刪除mysql
yum -y remove MySQL-*
一般用rpm -e 的命令刪除mysql,這樣表面上刪除了mysql,可是mysql的一些殘餘程式仍然存在,並且通過第一步的方式也查詢不到殘餘,而yum命令比較強大,可以完全刪除mysql.(ps:用rpm刪除後再次安裝的時候會提示已經安裝了,這就是rpm沒刪除乾淨的原因)
3.把所有出現的目錄統統刪除
find / -name mysql
查詢mysql的一些目錄,把所有出現的目錄刪除,可以使用rm -rf 路徑,刪除時請注意,一旦刪除無法恢復
4.刪除配置檔案
rm -rf /etc/my.cnf
5.刪除mysql的預設密碼
rm -rf /root/.mysql_sercret
刪除mysql的預設密碼,如果不刪除,以後安裝mysql這個sercret中的預設密碼不會變,使用其中的預設密碼就可能會報類似Access denied for user ‘root@localhost’ (using password:yes)的錯誤.
五步完成之後,這樣mysql就全部刪除乾淨了,若沒安裝過mysql可忽略以上步驟
3、檢查是否有mariadb
[root@centos7 opt]# rpm -qa | grep mariadb
如果有則解除安裝
[root@centos7 opt]# rpm -e --nodeps mariadb-libs
[root@centos7 opt]# rpm -e --nodeps mariadb-devel-5.5.65-1.el7.x86_64
4、安裝mysql依賴包
[root@centos7 opt]# yum install libaio
5、解壓
進入/opt目錄下將mysql檔案解壓
[root@centos7 opt]# cd /opt
[root@centos7 opt]# tar -zxvf mysql-8.0.21-el7-x86_64.tar.gz
6、更名並移動
為了方便操作以及配置檔案的更改我們將檔名重新命名為mysql
[root@centos7 opt]# mv mysql-8.0.21-el7-x86_64 mysql
按照習慣,我們將檔案移動到/usr/local目錄下
[root@centos7 opt]# mv /opt/mysql/ /usr/local/
我們切換到usr/local/目錄下檢視mysql是否存在
[root@centos7 opt]# cd /usr/local/
建立資料庫檔案存放的資料夾。這個資料夾將來存放每個資料庫的庫檔案
如果初始化的時候不生成密碼,這一步驟可不要
[root@centos7 local]# cd mysql
[root@centos7 mysql]# mkdir mysqldb
7、mysql安裝目錄賦予許可權
[root@centos7 mysql]# chmod -R 777 /usr/local/mysql/
8、建立mysql組和使用者
建立組
[root@centos7 mysql]# groupadd mysql
建立使用者(-s /bin/false引數指定mysql使用者僅擁有所有權,而沒有登入許可權)
[root@centos7 mysql]# useradd -r -g mysql -s /bin/false mysql
將使用者新增到組中
[root@centos7 mysql]# chown -R mysql:mysql ./
9、修改mysql配置檔案
[root@centos7 mysql]# vi /etc/my.cnf
可以先看看/etc目錄下有沒有這個檔案,如果沒有直接在當前目錄mysql下vim一個也可以
將裡面的命令都刪除掉,然後新增以下命令,儲存並退出(如果有一定經驗,可以在裡面新增一些其他的配置)
[mysqld]
# 設定3306埠
port=3306
# 設定mysql的安裝目錄
basedir=/usr/local/mysql
# 設定mysql資料庫的資料的存放目錄
datadir=/usr/local/mysql/mysqldb# 或者是data(初始化時會自動建立)
# 允許最大連線數
max_connections=10000
# 允許連線失敗的次數。這是為了防止有人從該主機試圖攻擊資料庫系統
max_connect_errors=10
# 服務端使用的字符集預設為UTF8
character-set-server=utf8
# 建立新表時將使用的預設儲存引擎
default-storage-engine=INNODB
# 預設使用“mysql_native_password”外掛認證
default_authentication_plugin=mysql_native_password
[mysql]
# 設定mysql客戶端預設字符集
default-character-set=utf8
[client]
# 設定mysql客戶端連線服務端時預設使用的埠
port=3306
default-character-set=utf8
10、安裝mysql
進入mysql 安裝目錄下:
[root@centos7 mysql]# cd /usr/local/mysql/bin/
安裝mysql,並記住初始化隨機密碼
rjH1VL1+YEfb
上面的試了一直報錯,後來換成下面這種,區別是下面這種不會有初始密碼
[root@centos7 mysql]# ./mysqld --initialize-insecure
不需要建立儲存資料庫的目錄(data或mysqldb)
11、啟動mysql服務
進入mysql.server服務目錄下並啟動服務
[root@centos7 bin]# cd /usr/local/mysql/support-files
[root@centos7 support-files]# ./mysql.server start
如果第一次啟動,當初始化執行會有報錯
此時不要擔心,重新給mysql安裝目錄賦予一下許可權後,再次執行
[root@centos7 support-files]# chmod -R 777 /usr/local/mysql
[root@centos7 support-files]# ./mysql.server start
12、將mysql新增到系統程序中
[root@centos7 bin]# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
此時我們就可以使用服務程序操作mysql了
13、設定mysql自啟動
[root@centos7 bin]# chmod +x /etc/init.d/mysqld
[root@centos7 bin]# systemctl enable mysqld
此時mysql自啟動就已經設定好了
14、修改root使用者登入密碼
登入mysql
[root@centos7 bin]# cd /usr/local/mysql/bin/
[root@centos7 bin]# ./mysql -u root -p
執行後,輸入我們初始化時記錄下的隨機密碼,就會進入mysql
mysql> alter user 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
15、設定允許遠端登入
mysql> use mysql
mysql> update user set user.Host='%' where user.User='root';
mysql> flush privileges;
mysql> quit
16、重啟服務且測試
centos6與centos7的服務命令都支援
[root@centos7 bin]# systemctl restart mysql
或
[root@centos7 bin]# service mysql restart
1、檢視mysql是否啟動
[root@centos7 bin]# systemctl status mysql
2、檢視防火牆開放埠
firewall-cmd --list-all
3、在防火牆中將3306埠開放
[root@centos7 bin]# firewall-cmd --zone=public --add-port=3306/tcp --permanent
[root@centos7 bin]# firewall-cmd --reload
//--permanent為永久生效,沒有此引數 伺服器重啟後配置失效
4、在Navicat上測試連線
5、重啟linux後測試自啟動(可選)
[root@centos7 bin]# reboot
測試mysql服務是否自啟動
測試遠端訪問
————————————————
版權宣告:本文為CSDN博主「Java大俠」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處連結及本宣告。
原文連結:https://blog.csdn.net/qq_41389482/article/details/109711389