1. 程式人生 > 其它 >MySQL多版本單例項安裝

MySQL多版本單例項安裝

MySQL單例項安裝

本文使用的系統是CentOS7,資料庫版本是MySQL5.7,使用二進位制安裝方式安裝

注意:這裡僅僅是簡單的安裝,不代表生產

1 安裝前準備

建立系統MySQL使用者

[root@mysql ~]#  useradd mysql 

建立軟體目錄並修改目錄歸屬

[root@mysql ~]#  mkdir -p /app/

下載MySQL5.7安裝包,並將MySQL5.7的安裝包上傳至軟體目錄下

[root@mysql ~]# cd /app/
[root@mysql tmp]# ll
-rw-r--r--. 1 root root 724672294 Jul 12 17:16 mysql-5.7.28-linux-glibc2.12-x86_64.tar.gz

初始化原環境,清理系統自帶的資料庫相關資訊

[root@mysql tmp]# rpm -qa |grep mariadb
mariadb-libs-5.5.60-1.el7_5.x86_64
[root@mysql tmp]#  yum remove -y mariadb-libs-5.5.60-1.el7_5.x86_64

解壓MySQL壓縮包

[root@mysql app]# tar -vxf mysql-5.7.28-linux-glibc2.12-x86_64.tar.gz 
[root@mysql app]# ll
drwxr-xr-x. 9 root root       129 Jul 12 18:03 mysql-5.7.28-linux-glibc2.12-x86_64
-rw-r--r--. 1 root root 724672294 Jul 12 17:16 mysql-5.7.28-linux-glibc2.12-x86_64.tar.gz

將解壓出來的檔案重新命名為mysql

[root@mysql app]# mv mysql-5.7.28-linux-glibc2.12-x86_64 mysql
[root@mysql app]# ll
drwxr-xr-x. 9 root root       129 Jul 12 18:03 mysql

檢視mysql目錄下的檔案

[root@mysql mysql]# ll
total 292
drwxr-xr-x.  2 root root    4096 Jul 12 18:03 bin
drwxr-xr-x.  2 root root      55 Jul 12 18:03 docs
drwxr-xr-x.  3 root root    4096 Jul 12 18:03 include
drwxr-xr-x.  5 root root     230 Jul 12 18:03 lib
-rw-r--r--.  1 7161 31415 279547 Sep 27  2019 LICENSE
drwxr-xr-x.  4 root root      30 Jul 12 18:03 man
-rw-r--r--.  1 7161 31415    587 Sep 27  2019 README
drwxr-xr-x. 28 root root    4096 Jul 12 18:03 share
drwxr-xr-x.  2 root root      90 Jul 12 18:03 support-files

設定環境變數

[root@mysql mysql]# vi /etc/profile
#再最後新增上下面的MySQL的bin路徑資訊
export PATH=/app/mysql/bin:$PATH
#重新生效以下環境變數
[root@db01 ~]# source /etc/profile

建立資料庫目錄,該資料目錄是指定到容量更大的掛載盤上,這裡代指就好

[root@mysql /]# mkdir -p /data

設定軟體資料目錄的使用者和歸屬

[root@mysql /]# chown -R mysql:mysql /app/*
[root@mysql /]# chown -R mysql:mysql /data

新增最簡單的配置檔案

[root@mysql /]# vi /etc/my.cnf
#在配置檔案中新增下面的內容
[mysqld]
user=mysql
basedir=/app/mysql
datadir=/data/mysql
server_id=6
port=3306
socket=/tmp/mysql.sock
log_error=mysql.err
character-set-server=utf8mb4
[mysql]
socket=/tmp/mysql.sock
prompt=3306 [\\d]>

搭建yum 倉庫安裝依賴包,MySQL依賴於該libaio庫

[root@mysql /]# df -h
[root@mysql /]# mount /dev/cdrom /mnt
[root@mysql /]# cd /etc/yum.repos.d/
[root@mysql /]# mkdir bak
#先將其他的yum的repo源,使用本地映象源,備份到bak目錄中
[root@mysql /]# mv * bak/
[root@mysql /]# vi local.repo
#新增下面的內容到local.repo
[centos]
name=centos
baseurl=file:///mnt
gpgcheck=0
enable=1

[root@mysql /]# yum -y install libaio 
[root@mysql /]# yum-y install autoconf

2. 初始化資料

在MySQL5.7中初始化資料有兩種方式。

方法一:初始化資料時資料庫管理員帶有臨時密碼,在初始化過程中會打印出不來或者在錯誤日誌中會有,初始化完成之後進入資料庫需要修改臨時密碼。

方法二:初始化資料時資料庫管理員帶沒有臨時密碼,,初始化完成之後在新增密碼。

兩種方式選擇哪種都可以,最後都要修改或新增上密碼,下面兩種方式都演示一遍

2.1方法一

初始化資料時管理員帶有臨時密碼的方式

[root@mysql /]# mysqld --initialize  --user=mysql --basedir=/app/mysql --datadir=/data/
2021-07-12T10:53:20.559245Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2021-07-12T10:53:20.764472Z 0 [Warning] InnoDB: New log files created, LSN=45790
2021-07-12T10:53:20.796536Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
2021-07-12T10:53:20.873502Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: 5f52d8c0-e2ff-11eb-bc1a-000c291b2f55.
2021-07-12T10:53:20.879004Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.
2021-07-12T10:53:21.640454Z 0 [Warning] CA certificate ca.pem is self signed.
2021-07-12T10:53:21.837827Z 1 [Note] A temporary password is generated for root@localhost: ;seGyKj6hW.Q

由上面的初始化結果可以看到臨時密碼為:;seGyKj6hW.Q

也可以在錯誤日誌(mysql.err )中檢視

[root@mysql data]# tail -100f mysql.err
2021-07-12T10:53:20.559245Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2021-07-12T10:53:20.764472Z 0 [Warning] InnoDB: New log files created, LSN=45790
2021-07-12T10:53:20.796536Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
2021-07-12T10:53:20.873502Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: 5f52d8c0-e2ff-11eb-bc1a-000c291b2f55.
2021-07-12T10:53:20.879004Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.
2021-07-12T10:53:21.640454Z 0 [Warning] CA certificate ca.pem is self signed.
2021-07-12T10:53:21.837827Z 1 [Note] A temporary password is generated for root@localhost: ;seGyKj6hW.Q

檢視資料目錄下的檔案

[root@mysql /]# cd /data/
[root@mysql data]# ll
total 110664
-rw-r-----. 1 mysql mysql       56 Jul 12 18:53 auto.cnf
-rw-------. 1 mysql mysql     1680 Jul 12 18:53 ca-key.pem
-rw-r--r--. 1 mysql mysql     1112 Jul 12 18:53 ca.pem
-rw-r--r--. 1 mysql mysql     1112 Jul 12 18:53 client-cert.pem
-rw-------. 1 mysql mysql     1676 Jul 12 18:53 client-key.pem
-rw-r-----. 1 mysql mysql      425 Jul 12 18:53 ib_buffer_pool
-rw-r-----. 1 mysql mysql 12582912 Jul 12 18:53 ibdata1
-rw-r-----. 1 mysql mysql 50331648 Jul 12 18:53 ib_logfile0
-rw-r-----. 1 mysql mysql 50331648 Jul 12 18:53 ib_logfile1
drwxr-x---. 2 mysql mysql     4096 Jul 12 18:53 mysql
-rw-r-----. 1 mysql mysql      880 Jul 12 18:53 mysql.err
drwxr-x---. 2 mysql mysql     8192 Jul 12 18:53 performance_schema
-rw-------. 1 mysql mysql     1676 Jul 12 18:53 private_key.pem
-rw-r--r--. 1 mysql mysql      452 Jul 12 18:53 public_key.pem
-rw-r--r--. 1 mysql mysql     1112 Jul 12 18:53 server-cert.pem
-rw-------. 1 mysql mysql     1676 Jul 12 18:53 server-key.pem
drwxr-x---. 2 mysql mysql     8192 Jul 12 18:53 sys

2.2方法二

資料庫管理員無密碼的初始化方式,需要多新增insecure這引數

因為剛才使用了方式一初始化了資料,在/data目錄下已經有了資料檔案,要是再執行方法二的初始化方式就會報錯如下:

[root@mysql data]# mysqld --initialize-insecure  --user=mysql --basedir=/app/mysql --datadir=/data/
2021-07-12T11:14:37.190310Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2021-07-12T11:14:37.192437Z 0 [ERROR] --initialize specified but the data directory has files in it. Aborting.
2021-07-12T11:14:37.192471Z 0 [ERROR] Aborting

從報錯的結果知道在資料檔案中已經有檔案,不能初始化,說明在初始化的時候資料目錄必須為空。

解決該問題就是將該目錄下的所有檔案全部刪除,在初始化即可

[root@mysql /]# cd /data/
[root@mysql data]# rm -rf *
[root@mysql data]# ll
total 0
[root@mysql data]# mysqld --initialize-insecure  --user=mysql --basedir=/app/mysql --datadir=/data/
2021-07-12T11:18:56.695116Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2021-07-12T11:18:56.854748Z 0 [Warning] InnoDB: New log files created, LSN=45790
2021-07-12T11:18:56.878756Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
2021-07-12T11:18:56.884786Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: f2db9180-e302-11eb-a233-000c291b2f55.
2021-07-12T11:18:56.885432Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.
2021-07-12T11:18:57.576987Z 0 [Warning] CA certificate ca.pem is self signed.
2021-07-12T11:18:57.787198Z 1 [Warning] root@localhost is created with an empty password ! Please consider switching off the --initialize-insecure option.

初始化資料完成

3.配置啟動指令碼

MySQL啟動指令碼是mysql.server,該啟動指令碼的啟動方式也可以有兩種

方法一:直接使用mysql.server啟動

方式二:使用作業系統命令啟動

以上的兩種方法都是使用mysql.server指令碼啟動

3.1方法一

每次啟動要切換目錄,也可以寫進環境變數,但一般不使用這種方式

[root@mysql support-files]# cd /app/mysql/support-files
[root@mysql support-files]# ./mysql.server start
Starting MySQL. SUCCESS! 

3.2方法二

使用作業系統命令,可以是使用linux6或linux7新加的啟動方式

Linux6啟動方式

[root@mysql ~]# cp /app/mysql/support-files/mysql.server /etc/init.d/mysqld
[root@mysql ~]# /etc/init.d/mysqld start
Starting MySQL. SUCCESS!

#啟動
/etc/init.d/mysqld start
#停止
/etc/init.d/mysqld stop
#重啟
/etc/init.d/mysqld restart

這種方式在Linux7也是通用的

Linux7新加的systemd管理MySQL

[root@mysql ~]# vi /etc/systemd/system/mysqld.service 
#新增下面內容到其中
[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
ExecStart=/app/mysql/bin/mysqld --defaults-file=/etc/my.cnf
LimitNOFILE = 5000
[root@mysql ~]# systemctl start mysqld

#啟動
systemctl start mysqld
#停止
systemctl stop mysqld
#重啟
systemctl restart mysqld
#檢視狀態
[root@mysql ~]# systemctl  status mysqld
● mysqld.service - MySQL Server
   Loaded: loaded (/etc/systemd/system/mysqld.service; disabled; vendor preset: disabled)
   Active: active ('running') since Mon 2021-07-12 19:59:26 CST; 6s ago
     Docs: man:mysqld(8)
           http://dev.mysql.com/doc/refman/en/using-systemd.html
 Main PID: 25325 (mysqld)
   CGroup: /system.slice/mysqld.service
           └─25325 /app/mysql/bin/mysqld --defaults-file=/etc/my.cnf
Jul 12 19:59:26 mysql systemd[1]: Started MySQL Server.

4.修改管理員密碼

剛初始化完成,需要進入到資料庫庫中修改密碼

3306 [(none)]> alter user root@'localhost' identified by '123';

或者使用mysqladmin工具修改

[root@mysql ~]# mysqladmin -uroot -p password 123

5.忘記密碼處理

需要到以下的兩個引數

--skip-grant-tables  #跳過授權表
--skip-networking    #跳過遠端登入

關閉資料庫

[root@mysql ~]# /etc/init.d/mysqld stop
Shutting down MySQL.. SUCCESS! 

啟動資料庫到維護模式

[root@mysql ~]# mysqld_safe --skip-grant-tables --skip-networking &
[1] 8355
[root@mysql ~]# 2021-07-13T15:27:28.121189Z mysqld_safe Logging to '/data/mysql.err'.
2021-07-13T15:27:28.144072Z mysqld_safe Starting mysqld daemon with databases from /data

在開啟另一個會話,不需要密碼就可以登入了

[root@mysql ~]# mysql -uroot -p
Enter password: 
#不能直接該,因為在啟動時已經跳過密碼錶,就是不將密碼錶加入到記憶體中
3306 [(none)]>alter user root@'localhost' identified by '1';
ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement
#重新整理許可權,就是將密碼錶載入到記憶體中
3306 [(none)]> flush privileges;
3306 [(none)]>alter user root@'localhost' identified by '1';
Query OK, 0 rows affected (0.00 sec)

關閉資料庫,正常啟動驗證

[root@mysql ~]# mysql -uroot -p1
3306 [(none)]>exi

其他版本安裝

以下基於官網的MySQL5.6,5.7,8.0三種版本安裝演示

1.MySQL5.6安裝

新增使用者和組,要是已經存在可以不建立

[root@mysql ~]# groupadd mysql
[root@mysql ~]# useradd -r -g mysql mysql

將軟體上傳到/app目錄下

[root@mysql ~]# cd /app/
[root@mysql app]# ll
-rw-r--r--. 1 mysql mysql 341523632 Jul 12 17:16 mysql-5.6.50-linux-glibc2.12-x86_64.tar.gz

將MySQL5.6的安裝包解壓到/usr/local目錄下

[root@mysql ~]# cd /usr/local/
[root@mysql local]# tar zxvf /app/mysql-5.6.50-linux-glibc2.12-x86_64.tar.gz 
[root@mysql local]# ll
drwxr-xr-x. 13 root root 191 Jul 14 00:24 mysql-5.6.50-linux-glibc2.12-x86_64

搭建一條軟連線到mysql

[root@mysql local]# ln -s /usr/local/mysql-5.6.50-linux-glibc2.12-x86_64/ mysql
[root@mysql local]# ll
lrwxrwxrwx.  1 root root  47 Jul 14 00:32 mysql -> /usr/local/mysql-5.6.50-linux-glibc2.12-x86_64/

設定環境變數

[root@mysql mysql]# vi /etc/profile
#再最後新增上下面的MySQL的bin路徑資訊
export PATH=/usr/local/mysql/bin:$PATH
#重新生效以下環境變數
[root@db01 ~]# source /etc/profile

設定歸屬,使用軟連結的無法授權給目錄,需要到目錄中去授權

[root@mysql local]# cd mysql
[root@mysql mysql]# chown mysql:mysql *
[root@mysql mysql]# ll
total 224
drwxr-xr-x.  2 mysql mysql   4096 Jul 14 00:24 bin
drwxr-xr-x.  3 mysql mysql     18 Jul 14 00:24 data
drwxr-xr-x.  2 mysql mysql     55 Jul 14 00:24 docs
drwxr-xr-x.  3 mysql mysql   4096 Jul 14 00:24 include
drwxr-xr-x.  3 mysql mysql   4096 Jul 14 00:24 lib
-rw-r--r--.  1 mysql mysql 198041 Sep 23  2020 LICENSE
drwxr-xr-x.  4 mysql mysql     30 Jul 14 00:24 man
drwxr-xr-x. 10 mysql mysql   4096 Jul 14 00:24 mysql-test
-rw-r--r--.  1 mysql mysql    587 Sep 23  2020 README
drwxr-xr-x.  2 mysql mysql     30 Jul 14 00:24 scripts
drwxr-xr-x. 28 mysql mysql   4096 Jul 14 00:24 share
drwxr-xr-x.  4 mysql mysql   4096 Jul 14 00:24 sql-bench
drwxr-xr-x.  2 mysql mysql    136 Jul 14 00:24 support-files

建立資料目錄,並授權

[root@mysql /]# mkdir -p /data56
[root@mysql /]# chown mysql:mysql data56/

準備配置檔案

[mysqld]
user=mysql
basedir=/usr/local/mysql
datadir=/data56/
server_id=56
port=3356
socket=/tmp/mysql56.sock
log_error=mysql.err
character-set-server=utf8mb4
[mysql]
socket=/tmp/mysql.sock
prompt=3356 [\\d]>

初始化資料

[root@mysql /]# /usr/local/mysql/scripts/mysql_install_db  --user=mysql --datadir=/data56 --basedir=/usr/local/mysql

拷貝啟動指令碼到/etc/init.d下

[root@mysql /]# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld56

啟動MySQL

[root@mysql /]# /etc/init.d/mysqld56 start

初始化完成後因為還沒設定有root密碼,需要馬上設定

[root@mysql tmp]# mysqladmin -uroot -p -S /tmp/mysql56.sock password 123
Enter password: #回車
Warning: Using a password on the command line interface can be insecure.
[root@mysql tmp]# mysql -uroot -p123 -S /tmp/mysql56.sock 
3356 [(none)]>

如有解除軟連線的可以使用下面對命令,沒事就別做這個,這個rm差不多

[root@mysql local]# unlink mysql

2.MySQL5.7安裝

新增使用者和組,要是已經存在可以不建立

[root@mysql ~]# groupadd mysql
[root@mysql ~]# useradd -r -g mysql mysql

將軟體上傳到/app目錄下

[root@mysql ~]# cd /app/
[root@mysql app]# ll
-rw-r--r--. 1 mysql mysql 724672294 Jul 12 17:16 mysql-5.7.28-linux-glibc2.12-x86_64.tar.gz

將MySQL5.7的安裝包解壓到/usr/local目錄下

[root@mysql ~]# cd /usr/local/
[root@mysql local]# tar zxvf /app/mysql-5.7.28-linux-glibc2.12-x86_64.tar.gz 
[root@mysql local]# ll
drwxr-xr-x. 13 root root 191 Jul 14 00:24 mysql-5.7.28-linux-glibc2.12-x86_64

搭建一條軟連線到mysql

[root@mysql local]# ln -s /usr/local/mysql-5.7.28-linux-glibc2.12-x86_64/ mysql
[root@mysql local]# ll
lrwxrwxrwx.  1 root root  47 Jul 14 00:32 mysql -> /usr/local/mysql-5.6.50-linux-glibc2.12-x86_64/

設定環境變數

[root@mysql mysql]# vi /etc/profile
#再最後新增上下面的MySQL的bin路徑資訊
export PATH=/usr/local/mysql/bin:$PATH
#重新生效以下環境變數
[root@db01 ~]# source /etc/profile

設定歸屬,使用軟連結的無法授權給目錄,需要到目錄中去授權

[root@mysql local]# cd mysql
[root@mysql mysql]# chown mysql:mysql *
[root@mysql mysql]# ll
total 292
drwxr-xr-x.  2 mysql mysql   4096 Jul 14 05:49 bin
drwxr-xr-x.  2 mysql mysql     55 Jul 14 05:49 docs
drwxr-xr-x.  3 mysql mysql   4096 Jul 14 05:49 include
drwxr-xr-x.  5 mysql mysql    230 Jul 14 05:49 lib
-rw-r--r--.  1 mysql mysql 279547 Sep 27  2019 LICENSE
drwxr-xr-x.  4 mysql mysql     30 Jul 14 05:49 man
-rw-r--r--.  1 mysql mysql    587 Sep 27  2019 README
drwxr-xr-x. 28 mysql mysql   4096 Jul 14 05:49 share
drwxr-xr-x.  2 mysql mysql     90 Jul 14 05:49 support-files

建立資料目錄,並授權

[root@mysql /]# mkdir -p /data57
[root@mysql /]# chown mysql:mysql /data57/

準備配置檔案

[mysqld]
user=mysql
basedir=/usr/local/mysql
datadir=/data57/
server_id=57
port=3357
socket=/tmp/mysql57.sock
log_error=mysql.err
character-set-server=utf8mb4
[mysql]
socket=/tmp/mysql.sock
prompt=3357 [\\d]>

初始化資料

[root@mysql /]# mysqld --initialize-insecure  --user=mysql --basedir=/usr/local/mysql --datadir=/data57/

拷貝啟動指令碼到/etc/init.d下

[root@mysql /]# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld57

啟動MySQL

[root@mysql /]# /etc/init.d/mysqld57 start

初始化完成後因為還沒設定有root密碼,需要馬上設定

[root@mysql tmp]# mysqladmin -uroot -p -S /tmp/mysql57.sock password 123
Enter password: #回車
Warning: Using a password on the command line interface can be insecure.
[root@mysql tmp]# mysql -uroot -p123 -S /tmp/mysql57.sock 
3357 [(none)]>

如有解除軟連線的可以使用下面對命令,沒事就別做這個,這個rm差不多

[root@mysql local]# unlink mysql

3.MySQL8.0安裝

新增使用者和組,要是已經存在可以不建立

[root@mysql ~]# groupadd mysql
[root@mysql ~]# useradd -r -g mysql mysql

將軟體上傳到/app目錄下

[root@mysql ~]# cd /app/
[root@mysql app]# ll
-rw-r--r--. 1 mysql mysql 859071704 Jul 12 17:16 mysql-8.0.22-linux-glibc2.12-x86_64.tar.xz

將MySQL5.6的安裝包解壓到/usr/local目錄下

[root@mysql local]# tar -Jxf /app/mysql-8.0.22-linux-glibc2.12-x86_64.tar.xz
[root@mysql local]# ll
drwxr-xr-x. 13 root root 191 Jul 14 00:24 mysql-8.0.22-linux-glibc2.12-x86_64

搭建一條軟連線到mysql

[root@mysql local]# ln -s /usr/local/mysql-8.0.22-linux-glibc2.12-x86_64/ mysql
[root@mysql local]# ll
lrwxrwxrwx.  1 root root  47 Jul 14 00:32 mysql -> /usr/local/mysql-8.0.22-linux-glibc2.12-x86_64/

設定環境變數

[root@mysql mysql]# vi /etc/profile
#再最後新增上下面的MySQL的bin路徑資訊
export PATH=/usr/local/mysql/bin:$PATH
#重新生效以下環境變數
[root@db01 ~]# source /etc/profile

設定歸屬,使用軟連結的無法授權給目錄,需要到目錄中去授權

[root@mysql local]# cd mysql
[root@mysql mysql]# chown mysql:mysql *
[root@mysql mysql]# ll
total 384
drwx------.  2 mysql mysql   4096 Sep 23  2020 bin
drwx------.  2 mysql mysql     55 Sep 23  2020 docs
drwx------.  3 mysql mysql    282 Sep 23  2020 include
drwx------.  6 mysql mysql    201 Sep 23  2020 lib
-rw-r--r--.  1 mysql mysql 378912 Sep 23  2020 LICENSE
drwx------.  4 mysql mysql     30 Sep 23  2020 man
-rw-r--r--.  1 mysql mysql    687 Sep 23  2020 README
drwx------. 28 mysql mysql   4096 Sep 23  2020 share
drwx------.  2 mysql mysql     77 Sep 23  2020 support-files

建立資料目錄,並授權

[root@mysql /]# mkdir -p /data80
[root@mysql /]# chown mysql:mysql /data80/

準備配置檔案

[mysqld]
user=mysql
basedir=/usr/local/mysql
datadir=/data80/
server_id=80
port=3380
socket=/tmp/mysql80.sock
log_error=mysql80.err
character-set-server=utf8mb4
[mysql]
socket=/tmp/mysql.sock
prompt=3380 [\\d]>

初始化資料

[root@mysql /]# mysqld --initialize-insecure  --user=mysql --basedir=/usr/local/mysql --datadir=/data80/

拷貝啟動指令碼到/etc/init.d下

[root@mysql /]# cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld80

啟動MySQL

[root@mysql /]# /etc/init.d/mysqld80 start

初始化完成後因為還沒設定有root密碼,需要馬上設定

[root@mysql tmp]# mysqladmin -uroot -p -S /tmp/mysql80.sock password 123
Enter password: #回車
Warning: Using a password on the command line interface can be insecure.
[root@mysql tmp]# mysql -uroot -p123 -S /tmp/mysql80.sock 
3380 [(none)]>

如有解除軟連線的可以使用下面對命令,沒事就別做這個,這個rm差不多

[root@mysql local]# unlink mysql