CentOS_8 安裝MySQL5.7

1、在安裝之前,如果你的系統曾經安裝過Mariadb,請先解除安裝:
yum remove mariadb*

2、安裝依賴
yum install -y epel-release
yum update -y
yum install -y cmake gcc-c++ ncurses-devel perl-Data-Dumper boost-doc boost-devel libaio-devel

3、下載解壓MySQL原始碼包
cd /opt/
wget https://downloads.mysql.com/archives/get/p/23/file/mysql-5.7.20-linux-glibc2.12-x86_64.tar.gz
tar -zxf mysql-5.7.20-linux-glibc2.12-x86_64.tar.gz
mv mysql-5.7.20-linux-glibc2.12-x86_64 mysql

4、配置環境變數
[root@cs opt]# vim /etc/profile
#新增如下內容
export PATH=/opt/mysql/bin:$PATH
#然後source生效
[root@cs opt]# source /etc/profile

5、新增使用者並授權相關
useradd mysql
id mysql
mkdir /data/mysql -p
chown -R mysql:mysql /opt/mysql/*
chown -R mysql:mysql /data/*

其中:

  • /opt/mysql/是MySQL軟體所在目錄。
  • /data/mysql是將來存放MySQL資料的目錄。

 6、初始化資料庫

mysqld --initialize-insecure  --user=mysql --basedir=/opt/mysql --datadir=/data/mysql

上述引數,並不難理解:

  • --initialize-insecure,表示不安全的初始化。這個引數來自於--initialize引數,在MySQL5.7版本中,在初始化成功後,會生成一個臨時密碼,相對比較麻煩,所以這裡改為--initialize-insecure,初始化成功後,密碼為空。
  • --user=mysql,管理MySQL的使用者是mysql
  • --basedir=/opt/mysql,是你MySQL的安裝目錄。
  • --datadir=/data/mysql,是管理資料的目錄。
7、在初始化完成後,你的MySQL的資料目錄,應該有這些檔案:

  [root@localhost mysql]# ll /data/mysql/
  總用量 122948
  -rw-r-----. 1 mysql mysql 56 8月 24 16:30 auto.cnf
  -rw-r-----. 1 mysql mysql 305 8月 24 17:00 ib_buffer_pool
  -rw-r-----. 1 mysql mysql 12582912 8月 24 17:00 ibdata1
  -rw-r-----. 1 mysql mysql 50331648 8月 24 17:00 ib_logfile0
  -rw-r-----. 1 mysql mysql 50331648 8月 24 16:30 ib_logfile1
  -rw-r-----. 1 mysql mysql 12582912 8月 24 17:00 ibtmp1
  -rw-r-----. 1 mysql mysql 27486 8月 24 17:00 localhost.localdomain.err
  -rw-r-----. 1 mysql mysql 6 8月 24 17:00 localhost.localdomain.pid
  drwxr-x---. 2 mysql mysql 4096 8月 24 16:30 mysql
  drwxr-x---. 2 mysql mysql 8192 8月 24 16:30 performance_schema
  drwxr-x---. 2 mysql mysql 8192 8月 24 16:30 sys
  [root@localhost mysql]#

7、配置檔案

vim /etc/my.cnf
  [mysqld]
  user=mysql
  basedir=/opt/mysql
  datadir=/data/mysql
  server_id=6
  port=3306
  socket=/tmp/mysql.sock
  [mysql]
  socket=/tmp/mysql.sock
  prompt=3306 [\\d]>
 8、管理MySQL_etc/init.d
cp /opt/mysql/support-files/mysql.server /etc/init.d/mysqld

 9、啟動、重啟命令
service mysqld start
service mysqld restart

10、如果設定密碼不成功,可繞過密碼登入,重新設定
/etc/init.d/mysqld stop
mysqld_safe --user=mysql --skip-grant-tables --skip-networking &

update mysql.user set authentication_string=PASSWORD("123456") where user='root'and host='localhost';
flush privileges;

/etc/init.d/mysqld restart
mysql -uroot -p

成功!!
centos8 安裝mysql5.7 後,mysql命令登入不成功,
報錯:mysql: error while loading shared libraries: libncurses.so.5: cannot open shared object file: No such file or directory。
按照百度的方法都不成功,應該和系統版本有關,後來自己想到一個方法:yum install libncurses*,完美解決問題。