償試過用yum安裝的都失敗了愈腾,原因是服務(wù)啟動時報錯憋活,償試了多種解決辦法,均不成功虱黄。然用源碼方法卻成功了悦即,下面就介紹記錄一下安裝步驟。
1 安裝cmake工具
yum install -y cmake make gcc gcc-c++ libaio ncurses ncurses-devel
2 進(jìn)入/usr/local/src目錄,下載安裝操作
- 下載mysql壓縮包
wget https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz
- 解壓
tar -zxvf mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz
- 復(fù)制解壓后的文件夾到/usr/local/mysql目錄
cp -r mysql-5.7.24-linux-glibc2.12-x86_64 /usr/local/mysql
- 添加系統(tǒng)mysql組和mysql用戶
groupadd mysql
useradd -r -g mysql mysql // 添加完成后可用id mysql查看
- 安裝數(shù)據(jù)庫礁鲁,這一步時間要久一點(diǎn)
切到mysql目錄 cd /usr/local/mysql
修改當(dāng)前目錄擁有者為mysql用戶 chown -R mysql:mysql ./
安裝數(shù)據(jù)庫 bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
此步會生成臨時密碼盐欺,不記得也沒關(guān)系,可通過命令查找出來:grep "password" /var/log/mysqld.log
3 配置my.cnf
- 清空my.cnf:
cat /dev/null > /etc/my.cnf
- 編輯:vim /etc/my.cnf 復(fù)制如下文本進(jìn)去
[mysqld]
character_set_server=utf8
init_connect='SET NAMES utf8'
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
socket=/tmp/mysql.sock
#不區(qū)分大小寫
lower_case_table_names = 1
#不開啟sql嚴(yán)格模式
sql_mode = "STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
log-error=/var/log/mysqld.log
pid-file=/usr/local/mysql/data/mysqld.pid
- 啟動相關(guān)配置
- 添加開機(jī)啟動
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
- 修改開機(jī)啟動路徑
vim /etc/init.d/mysqld
basedir=與datadir=后面添加:
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
- 啟動mysql
service mysqld start
- 加入開機(jī)啟動
chkconfig --add mysqld
- 登錄mysql報錯
mysql -uroot -p
報錯:-bash: /usr/bin/mysql: 沒有那個文件或目錄
解決:添加軟連接 ln -s /usr/local/mysql/bin/mysql /usr/bin
報錯Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’ (2)
原因: 我們前面my.cnf中mysqld下仅醇,socket=/tmp/mysql.sock冗美。
解決:在服務(wù)啟動后執(zhí)行 ln -s /tmp/mysql.sock /var/lib/mysql/mysql.sock
設(shè)置root用戶密碼
- 找回默認(rèn)密碼
grep "password" /var/log/mysqld.log
- 設(shè)置新密碼
alter user 'root'@'localhost' identified by '你的新密碼';
flush privileges; #刷新權(quán)限
或者
step 1: SET PASSWORD = PASSWORD(‘你的新密碼’);
step 2: ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;
step 3: flush privileges;
然后,執(zhí)行exit退出析二,重新mysql -u root -p登錄粉洼。