MySQL在Centos7環境安裝
1.切換root用戶
安裝與卸載中,用戶全部切換成為root,安裝好后,普通用戶也能使用
2.卸載不要的環境
要將自己環境中有關mysql的全都刪除,避免安裝過程中被影響
ps axj | grep mariadb
先檢查是否有mariadb
服務啟動
這種狀態才是沒有啟動的
如果存在啟動的mariadb服務,執行systemctl stop mariadb.service
,再運行ps axj | grep mariadb
3.檢查并卸載系統安裝包
檢查自己的環境中存不存在其他的安裝包,避免在安裝過程中用錯或產生干擾,使最后安裝結果的版本不匹配
rpm -qa | grep mariadb
rpm -qa | grep mysql
我的環境中并沒有,
假設有其他的包,會顯示包的名稱,例如:
mysql-community-server-5.7.41-1.el7.x86_64
mysql57-community-release-el7-11.noarch
mysql-community-client-5.7.41-1.el7.x86_64
mysql-community-libs-5.7.41-1.el7.x86_64
此時就需要卸載這些默認安裝包,執行(最好一個一個卸載):
sudo yum remove mariadb
然后檢查是否有文件/etc/my.cnf
,執行ls /etc/my.cnf
,然后做個備份
4.獲取mysql官方yum源
檢查自己系統版本:cat /etc/redhat-release
我的是不常用的示范機,裝的是阿里云的linux系統
正常應該是顯示centos版本,例如:
瀏覽器輸入:Index of /232905
注意:最好安裝和自己系統?致的mysql版本,否則可能會存在軟件兼容性問題
找到后下載到你的本地,然后上傳到你的Linux服務器
然后右鍵選擇查看網頁源代碼,這樣會顯示出來版本號全稱
找mysql57開頭的,后綴是elX-X的(大概在一百五十多行)
然后在當前目錄新建一個文件夾MySQL
mkdir MySQL
cd MySQL
然后上傳剛下載的mysql文件
我這里使用rz
命令,不需要用xftp
,可以先使用yum
下載(sudo yum install lrzsz
)
5.安裝mysql yum源
查看本地yum源,安裝前后進行對比,命令ls /etc/yum.repos.d/ -al
,(我們的肯定不相同,但是可以看到沒有mysql相關的yum源)
安裝,使用rmp,命令rpm -Uvh mysql57-community-release-el7-9.noarch_.rpm
(后邊跟你自己的包的名稱,注意版本號)
再次查看yum源,會發現多了兩個mysql相關的
再看看能不能工作,輸入命令yum list |grep mysql
(需要等待幾秒,我只截取了部分,后邊還有很多)
6.安裝mysql服務
執行命令yum install -y mysql-community-server
有可能會報錯,如下:
這種情況是密匙過期,執行命令rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
就能解決
然后再次執行安裝命令
成功!
7.查看配置文件和數據存儲位置
/etc/my.cnf
此文件是mysql配置文件
/var/lib/mysql
此文件是存儲mysql數據的文件
8.啟動服務
執行命令systemctl start mysqld.service
查看啟動服務,執行命令ps axj |grep mysqld
,可以看到已經啟動了
9.登錄方法
我們現在還不知道密碼,正常情況執行mysql -uroot
是還登錄不上的,有幾種登錄方式,我直接挑一種大部分場景都可以用的:直接跳過密碼驗證進行登錄,需要進行mysql配置
執行命令vim /etc/my.cnf
,然后在最后一行加上skip-grant-tables
然后按esc:wq!
保存配置
配置完以后需要重啟mysql服務,執行命令systemctl restart mysqld
啟動mysql,執行命令mysql -uroot
登錄成功!
10.設置密碼
mysql> use mysql;
mysql> update mysql.user set authentication_string = password('新密碼') where user='root';
mysql> flush privileges;
mysql> quit;
然后把配置文件改回來。就是把之前在/etc/my.cnf
加的那一行刪除了,然后重啟mysql服務systemctl restart mysqld
,這次進行登錄,但是需要在結尾加上-p
,不加是不需要輸入密碼的登錄方式
成功登錄!
11.開機自啟動(選擇性設置)
執行命令:
systemctl enable mysqld
systemctl daemon-reload
12.my.cnf配置
配置?下my.cnf
,主要是數據庫客戶端和服務器的編碼格式
我這里配置了如上三種,配置完畢后重啟mysql服務即可systemctl restart mysqld
可選配置:
- port=3306: 這個設置指定了 MySQL 服務器監聽的端口號。默認情況下,MySQL 使用端口號 3306 來接收客戶端的連接。你可以根據需要修改這個值,但通常情況下不需要更改。
- character-set-server=utf8: 這個設置指定了 MySQL 數據庫服務器的默認字符集。在這種情況下,字符集被設置為 UTF-8,這是一種通用的字符編碼,支持多種語言的字符集。設置數據庫的字符集是非常重要的,特別是當數據庫需要存儲和處理多語言數據時。
- default-storage-engine=innodb: 這個設置指定了 MySQL 數據庫服務器的默認存儲引擎。在這種情況下,存儲引擎被設置為 InnoDB。InnoDB 是 MySQL 中最常用的存儲引擎之一,它支持事務、外鍵和行級鎖等特性,通常被用于處理事務性的數據。MySQL 還支持其他存儲引擎,如 MyISAM、Memory 等,每種存儲引擎都有其自身的特點和適用場景。
- datadir=/var/lib/mysql: 這個設置指定了 MySQL 數據庫服務器的數據目錄。在這個配置中,數據目錄被設置為 /var/lib/mysql,這是 MySQL 默認的數據存儲位置。
- socket=/var/lib/mysql/mysql.sock: 這個設置指定了 MySQL 數據庫服務器的套接字文件路徑。在這個配置中,套接字文件路徑被設置為 /var/lib/mysql/mysql.sock,MySQL 客戶端可以通過這個套接字與服務器進行通信。
- symbolic-links=0: 這個設置禁用了 MySQL 數據庫服務器中的符號鏈接,以預防各種安全風險。
- log-error=/var/log/mysqld.log: 這個設置指定了 MySQL 數據庫服務器的錯誤日志文件路徑。在這個配置中,錯誤日志文件被設置為 /var/log/mysqld.log。
- pid-file=/var/run/mysqld/mysqld.pid: 這個設置指定了 MySQL 數據庫服務器的進程 ID 文件路徑。在這個配置中,進程 ID 文件被設置為 /var/run/mysqld/mysqld.pid。