當(dāng)前位置 主頁 > 技術(shù)大全 >
在Linux系統(tǒng)中配置MySQL不僅可以提供高效穩(wěn)定的數(shù)據(jù)庫服務(wù),還能為開發(fā)者和系統(tǒng)管理員提供強大的數(shù)據(jù)存儲和處理能力
本文將詳細(xì)介紹如何在Linux系統(tǒng)中配置MySQL,并對其進行優(yōu)化,以確保其性能和安全性
一、準(zhǔn)備工作 在開始配置MySQL之前,需要確保Linux系統(tǒng)滿足以下要求: 1.系統(tǒng)要求:推薦使用64位的Linux發(fā)行版,如CentOS、Ubuntu等
2.存儲空間:確保系統(tǒng)中有足夠的存儲空間用于安裝MySQL及其數(shù)據(jù)文件
3.用戶權(quán)限:以root用戶或具有sudo權(quán)限的用戶身份登錄系統(tǒng)
此外,檢查系統(tǒng)中是否已經(jīng)安裝了MariaDB(MySQL的一個分支),因為某些Linux發(fā)行版可能默認(rèn)安裝了MariaDB
如果已安裝MariaDB,可以選擇卸載它(視情況而定)
二、MySQL的安裝 MySQL的安裝可以通過系統(tǒng)包管理器(如yum)或手動下載壓縮包進行安裝
以下是兩種方法的詳細(xì)步驟: 1. 使用yum安裝MySQL 1.下載MySQL: bash wget http://repo.mysql.com/mysql80-community-release-el7.rpm 2.安裝MySQL: bash yum -y install mysql80-community-release-el7.rpm yum -y install mysql-community-server 3.啟動MySQL服務(wù): bash systemctl start mysqld systemctl status mysqld 4.獲取初始密碼: bash grep password /var/log/mysqld.log 5.修改密碼: bash mysql -u root -p ALTER USER root@localhost IDENTIFIED BY new_password; 2. 手動安裝MySQL 1.下載MySQL安裝包:從MySQL官方網(wǎng)站下載安裝包,并上傳到/opt目錄下
2.解壓安裝包: bash cd /opt tar -zxvf mysql-VERSION.tar.gz mv mysql-VERSION mysql 3.創(chuàng)建數(shù)據(jù)文件夾: bash mkdir /opt/mysql/data 4.創(chuàng)建Linux用戶: bash useradd mysql 5.初始化MySQL數(shù)據(jù)庫: bash /opt/mysql/bin/mysqld --initialize --user=mysql --basedir=/opt/mysql --datadir=/opt/mysql/data 6.啟動MySQL服務(wù): bash /opt/mysql/bin/mysqld_safe --user=mysql & 7.查看臨時密碼: bash grep temporary password /var/log/mysqld.log 8.使用臨時密碼登錄并設(shè)置新密碼: bash mysql -uroot -p ALTER USER root@localhost IDENTIFIED BY new_password; 三、MySQL的配置與優(yōu)化 1. 修改配置文件 MySQL的配置文件通常位于/etc/my.cnf(或/etc/mysql/my.cnf)
在配置文件中,可以設(shè)置MySQL的字符集、端口、數(shù)據(jù)目錄等參數(shù)
例如,設(shè)置字符集為utf8mb4: 【mysqld】 character_set_server=utf8mb4 2. 設(shè)置字符集 MySQL存在四個級別的字符集:服務(wù)器級別、數(shù)據(jù)庫級別、表級別和列級別
優(yōu)先級為列>表>數(shù)據(jù)庫>服務(wù)器
如果優(yōu)先級高的沒有設(shè)置字符集,那么默認(rèn)使用它上一級的字符集
修改服務(wù)器級別的字符集: 編輯/etc/my.cnf文件,在【mysqld】標(biāo)簽下加入`character_set_server=utf8`,然后重啟MySQL服務(wù)
修改數(shù)據(jù)庫級別的字符集: sql ALTER DATABASE dbtest1 CHARACTER SET utf8; 修改表級別的字符集: sql ALTER TABLE test1 CONVERT TO CHARACTER SET utf8; 修改列級別的字符集: sql ALTER TABLE test1 MODIFY name VARCHAR(1 CHARACTER SET utf8; 3. 配置SQL大小寫規(guī)范 在SQL中,關(guān)鍵字(如SELECT、WHERE等)以及函數(shù)名(如ABS、ROUND等)是不區(qū)分大小寫的
然而,Linux對大小寫是敏感的,而Windows默認(rèn)對大小寫不敏感
查看大小寫敏感性: sql SHOW VARIABLES LIKE %lower_case_table_names%; 配置大小寫敏感性: 在MySQL配置文件中設(shè)置`lower_case_table_names`的值
0表示大小寫敏感,1表示不敏感(創(chuàng)建的數(shù)據(jù)庫和表以小寫形式存放),2表示按照創(chuàng)建時的大小寫進行存放
4. 配置sql_mode sql_mode會影響MySQL支持的語法以及數(shù)據(jù)校驗的嚴(yán)格性
查看sql_mode: sql SHOW VARIABLES LIKE sql_mode; 修改sql_mode: 可以在MySQL配置文件中設(shè)置,也可以在MySQL命令行中臨時修改(僅對當(dāng)前會話有效)
sql SET GLOBAL sql_mode = STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION; 5. 配置遠(yuǎn)程訪問 默認(rèn)情況下,MySQL僅允許本地訪問
如果需要遠(yuǎn)程訪問,需要修改MySQL的配置文件
編輯MySQL配置文件: bash vim /etc/mysql/my.cnf 修改bind-address: 將`bind-address`設(shè)置為`0.0.0.0`或服務(wù)器的公共IP地址
重啟MySQL服務(wù): bash systemctl restart mysqld 6. 配置環(huán)境變量 為了方便在命令行中訪問MySQL,可以將MySQL的bin目錄添加到系統(tǒng)的PATH環(huán)境變量中
編輯環(huán)境變量文件: bash vim /etc/profile 添加MySQL的bin目錄到PATH: bash export PATH=$PATH:/opt/mysql/bin 使配置生效: bash source /etc/profile 四、MySQL的安全與優(yōu)化 1. 定期備份數(shù)據(jù)庫 定期備份數(shù)據(jù)庫是非常重要的,可以使用mysqldump命令進行備份和恢復(fù)
備份數(shù)據(jù)庫: bash mysqldump -u username -pdatabase_name > backup.sql 恢復(fù)數(shù)據(jù)庫: bash mysql -u username -p database_name < backup.sql 2. 創(chuàng)建和管理用戶 為了安全性考慮,建議創(chuàng)建一個新的用戶,并限制其權(quán)限
創(chuàng)建新用戶: sql CREATE USER username@localhost IDENTIFIED BY password; 授予權(quán)限: sql GRANT ALL PRIVILEGES ON database_name. TO username@localhost; FLUSH PRIVILEGES; 3. 檢查和修復(fù)表 定期檢查和修復(fù)表可以確保數(shù)據(jù)庫的健康和完整性
檢查表: sql CHECK TABLE table_name; 修復(fù)表: sql REPAIR TABLEtable_name; 五、總結(jié) 通過以上步驟,我們可以在Linux系統(tǒng)中成功配置MySQL,并進行優(yōu)化和安