一、卸載系統(tǒng)自帶的相關(guān)
安裝前準(zhǔn)備
1.首先檢查系統(tǒng)中是否存在使用rpm安裝的mysql或者mariadb,如果有需要先刪除后再編譯安裝。
由于MySQL在CentOS7中收費(fèi)了,所以在CentOS7內(nèi)部默認(rèn)集成的數(shù)據(jù)庫改為MariaDB,MariaDB是mysql的一個(gè)分支,所以MySQL可能會(huì)和MariaDB文件有沖突,所以依然需要繼續(xù)下載掉MariaDB。
1.rpm -qa | grep mysql #檢查是否安裝了mysql
2.rpm -qa | grep mariadb #檢查是否安裝了mariadb
3.rpm -e xxx #一般使用此命令即可卸載成功
4.rpm -e --nodeps xxx #卸載不成功時(shí)使用此命令強(qiáng)制卸載
接下來查詢mysql的配置文件
sudo find / -name mysql
使用如下命令進(jìn)行清除:
sudo rm -rf xxx
二 安裝MySQL
進(jìn)入MySQL Community Downloads官網(wǎng)下載自己需要的安裝包,如下圖:

2.在linux中新建目錄(筆者目錄名為mysql)存放mysql文件(筆者目錄位置在usr/local)
3.將下載好的mysql-8.0.21-linux-glibc2.12-x86_64.tar.xz上傳到usr/local/mysql目錄中
4.切換到usr/local/mysql下,解壓文件
tar -xvf mysql-8.0.21-linux-glibc2.12-x86_64.tar.xz //解壓.tar.xz文件
tar -zvxf mysql-8.0.21-linux-glibc2.12-x86_64.tar.gz //解壓.tar.gz文件
6.重命名解壓文件
mv mysql-8.0.21-linux-glibc2.12-x86_64 mysql
9.為系統(tǒng)添加mysql 組和用戶:
groupadd mysql
useradd -r -g mysql mysql
10.進(jìn)入 /usr/local/mysql 目錄下,修改相關(guān)權(quán)限:
//修改當(dāng)前目錄為mysql用戶
chown -R mysql:mysql ./
11.mysql初始化操作,記錄下臨時(shí)密碼,之后第一次登錄的時(shí)候會(huì)用到。
bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data //運(yùn)行完成會(huì)生成一個(gè)暫時(shí)的密碼。

12.查看初始化過程中有沒有自動(dòng)生成my.cnf 文件
cd /etc/ //進(jìn)入 /etc/目錄下
ls | grep my.cnf //查看是否有my.cnf 文件。有則會(huì)產(chǎn)生結(jié)果。

13.如果你/etc下沒有生成my.cnf文件, 新建一個(gè)my-defalut.cnf文件,將其復(fù)制到/etc/my.cnf(筆者文件中未生成my.cnf 文件,所以手動(dòng)新建如下)
touch my-defalut.cnf //新建一個(gè)文件
chmod 755 my-defalut.cnf // 賦予權(quán)限
cp my-defalut.cnf /etc/my.cnf // 將文件復(fù)制到/etc/ 目錄下,并更名為my.cnf 文件名
14.my.cnf 信息設(shè)置如下
[mysqld]
配置默認(rèn)編碼為utf8
character_set_server=utf8mb4
init_connect='SET NAMES utf8mb4'
設(shè)置表名大小寫不敏感
lower_case_table_names=1
設(shè)置mysql安裝目錄
basedir=/usr/local/mysql
設(shè)置mysql數(shù)據(jù)庫的數(shù)據(jù)存放目錄
datadir=/usr/local/mysql/data
port=3306
socket=/tmp/mysql.sock
設(shè)置mysql的日志文件位置(這個(gè)配置文件先不要放開,不然會(huì)報(bào)找不到Mysql.log文件,等啟動(dòng)后再放開,在重啟)
log-error=/var/log/mysql.log
注意了,小細(xì)節(jié),這里的 $hostname 是linux的主機(jī)名。一般每個(gè)人主機(jī)名都是不一樣的。
pid-file=/usr/local/mysql/data/$hostname.pid
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
15.在 /etc/profile中配置mysql環(huán)境變量
vim /etc/profile // 打開profile文件在最后追加下面命令
export MYSQL_HOME
MYSQL_HOME=/usr/local/mysql
export PATH=MYSQL_HOME/lib:$MYSQL_HOME/bin
退出后讓其立馬生效命令:source /etc/profile
16.設(shè)置為開機(jī)自啟動(dòng)項(xiàng)
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
chmod +x /etc/init.d/mysql //添加可執(zhí)行權(quán)限。
chkconfig --add mysql // 注冊啟動(dòng)服務(wù)
輸入chkconfig --list //查看是否添加成功(如下表示成功)。

17.開啟服務(wù)器,登錄進(jìn)入mysql
service mysql start //開啟服務(wù)器。
mysql -uroot -p //登錄進(jìn)入mysql,然后輸入剛才第11步的臨時(shí)密碼,并回車。
如下圖則表明成功進(jìn)入MySQL

至此,說明已經(jīng)安裝成功了~。
18.進(jìn)入mysql后,修改密碼(當(dāng)前的root,‘your_password’ 只能在當(dāng)下服務(wù)器登陸)
alter user 'root'@'localhost' identified by 'your_password';
// 其中'your_password'是你設(shè)置的新密碼
19.遠(yuǎn)程訪問設(shè)置,添加遠(yuǎn)程登錄用戶(注:進(jìn)入mysql,在輸入如下命令)
默認(rèn)只允許root帳戶在本地登錄,如果要在其它機(jī)器上連接mysql,必須修改root允許遠(yuǎn)程連接,或者添加一個(gè)允許遠(yuǎn)程連接的帳戶,為了安全起見,添加一個(gè)新的帳戶:
- GRANT ALL PRIVILEGES ON . TO '你的用戶名'@'%' IDENTIFIED BY '你的密碼' WITH GRANT OPTION;
- flush privileges
注:如果依舊無法遠(yuǎn)程登陸,請檢查防火墻和在安全組放開3306端口
番外篇
mysql常用命令操作:
systemctl restart mysqld.service
systemctl start mysqld.service
systemctl stop mysqld.service
Linux下的tar壓縮解壓縮命令詳解:
*.tar 用 tar -xvf 解壓
*.gz 用 gzip -d或者gunzip 解壓
.tar.gz和.tgz 用 tar -xzf 解壓
*.bz2 用 bzip2 -d或者用bunzip2 解壓
*.tar.bz2用tar -xjf 解壓
*.Z 用 uncompress 解壓
*.tar.Z 用tar -xZf 解壓
*.rar 用 unrar e解壓
*.zip 用 unzip 解壓