安裝
- 下載地址
https://dev.mysql.com/downloads/mysql/5.7.html#downloads
- 安裝
[root@khunpean ~]# tar -zxvf mysql-5.7.30-linux-glibc2.12-x86_64.tar.gz -C /usr/local/
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 ./
- 安裝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]#
- 編輯配置文件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
- 測試啟動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
- 將mysql進程放入系統(tǒng)進程,并重啟mysql服務(wù)
cp support-files/mysql.server /etc/init.d/mysqld
service mysqld restart
- 配置mysql環(huán)境變量
vi /etc/profile
export PATH=$PATH:/usr/local/mysql/bin
source /etc/profile
- 使用隨機密碼登錄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”用來跳過密碼驗證的過程
- 設(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即可。
- 設(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