CentOS環(huán)境安裝MySQL5.7

安裝

  1. 下載地址
    https://dev.mysql.com/downloads/mysql/5.7.html#downloads
  2. 安裝
  • 解壓安裝
[root@khunpean ~]# tar -zxvf mysql-5.7.30-linux-glibc2.12-x86_64.tar.gz -C /usr/local/
  • 為mysql安裝目錄創(chuàng)建軟鏈接
ln -s mysql-5.7.30 mysql
  • 為CentOS添加mysql用戶組和mysql用戶(-s /bin/false參數(shù)指定mysql用戶僅擁有所有權(quán),而沒有登錄權(quán)限)
[root@khunpean local]# groupadd mysql
[root@khunpean local]# useradd -r -g mysql -s /bin/false mysql
  • 修改mysql安裝目錄的擁有者為新建的mysql用戶
[root@khunpean local]# cd /usr/local/mysql
[root@khunpean mysql]# chown -R mysql:mysql ./

  1. 安裝mysql
[root@khunpean mysql]# ./bin/mysqld --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --initialize
./bin/mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory
[root@khunpean mysql]# 
rpm -qa|grep libaio
yum install  libaio-devel.x86_64
yum -y install numactl
  • 解決錯誤后再次執(zhí)行安裝,記錄日志最末尾位置root@localhost:后的字符串,此字符串為mysql管理員臨時登錄密碼
2020-07-09T09:40:16.792474Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.
2020-07-09T09:40:17.011208Z 0 [Warning] CA certificate ca.pem is self signed.
2020-07-09T09:40:17.385758Z 1 [Note] A temporary password is generated for root@localhost: wod:Qy0cV5bS
[root@khunpean mysql]#
  1. 編輯配置文件my.cnf,添加配置如下
vi /etc/my.cnf
[mysqld]
port=3306
datadir=/usr/local/mysql/data
socket=/usr/local/mysql/mysql.sock
user=mysql
max_connections=151
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
 
# 設(shè)置忽略大小寫
lower_case_table_names = 1
 
# 指定編碼
character-set-server=utf8
 
collation-server=utf8_general_ci
 
# 開啟ip綁定
bind-address = 0.0.0.0
 
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
 
#指定客戶端連接mysql時的socket通信文件路徑
[client]
socket=/usr/local/mysql/mysql.sock
 
default-character-set=utf8
  1. 測試啟動mysql服務(wù)
/usr/local/mysql/support-files/mysql.server start
  • 異常情況
[root@khunpean mysql]# /usr/local/mysql/support-files/mysql.server start
Starting MySQL.2020-07-09T09:44:29.539053Z mysqld_safe error: log-error set to '/var/log/mariadb/mariadb.log', however file don't exists. Create writable for user 'mysql'.
The server quit without updating PID file (/usr/local/mysql[FAILED]8vb3utiu7gwez7zb7f2fZ.pid).
[root@khunpean mysql]# 
  • 查看是否存在mysql和mysqld的服務(wù),如果存在,則結(jié)束進程,再重新執(zhí)行啟動命令
#查詢服務(wù)
ps -ef|grep mysql
ps -ef|grep mysqld

#結(jié)束進程
kill -9 PID

#啟動服務(wù)
 /usr/local/mysql/support-files/mysql.server start
  1. 將mysql進程放入系統(tǒng)進程,并重啟mysql服務(wù)
cp support-files/mysql.server /etc/init.d/mysqld
service mysqld restart
  1. 配置mysql環(huán)境變量
vi /etc/profile
export PATH=$PATH:/usr/local/mysql/bin
source /etc/profile
  1. 使用隨機密碼登錄mysql數(shù)據(jù)庫
mysql -u root -p
user mysql;
update user set authentication_string=password("新密碼") where user="root";
flush privileges;
quit;
  • 在[mysqld]后面任意一行添加“skip-grant-tables”用來跳過密碼驗證的過程
  1. 設(shè)置允許遠程連接數(shù)據(jù)庫
use mysql;
update user set user.Host='%' where user.User='root';
select user,host from user;
flush privileges;
  • 開啟3306防火墻端口,即可遠程連接,如果還是無法遠程連接,查看/etc/my.cnf
    找到bind-address = 127.0.0.1這一行改為bind-address = 0.0.0.0即可。
  1. 設(shè)置開機自動啟動
#將服務(wù)文件拷貝到init.d下,并重命名為mysql
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
#賦予可執(zhí)行權(quán)限
chmod +x /etc/init.d/mysqld
#添加服務(wù)
chkconfig --add mysqld
#顯示服務(wù)列表
chkconfig --list
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容