CentOS 7.4 環境下原始碼編譯(多例項)安裝 Mysql 5.7.26

雲小蟲2019發表於2019-07-22

一、軟體安裝

1. 安裝必要的軟體依賴

yum -y install gcc gcc-c++ ncurses ncurses-devel bison cmake make

2、下載mysql原始碼包

mkdir /software 
cd /software
wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.26.tar.gz


檢視下載包:

[root@localhost software]# ls
mysql-5.7.26.tar.gz


3、解壓mysql原始碼包

   tar -zxvf mysql-5.7.26.tar.gz


3、配置編譯mysql原始碼包

進入解壓後的目錄,為了保持原始碼乾淨,新建子目錄 yunxiaochong,在子目錄下編譯

[root@localhost software]# ls
mysql-5.7.26  mysql-5.7.26.tar.gz
[root@localhost software]# cd mysql-5.7.26/
[root@localhost mysql-5.7.26]# mkdir yunxiaochong
[root@localhost mysql-5.7.26]# cd yunxiaochong/


cmake配置:

cmake .. -DCMAKE_INSTALL_PREFIX=/usr/local/mysql  \
-DWITH_MYISAM_STORAGE_ENGINE=1  \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_MEMORY_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DEXTRA_CHARSETS=all \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_SSL=bundled \
-DDOWNLOAD_BOOST=1 \
-DWITH_BOOST=/tmp

注:

如果編譯出現錯誤,請先刪除CMakeCache.txt後,再重新編譯:


rm -rf CMakeCache.txt


如果出現下面的提示就表示成功生成了編譯環境:

-- Configuring done

-- Generating done

  編譯:

make -j 10

安裝:

make instal

二、資料庫安裝

1、建立使用者

1
2
groupadd mysql

useradd   -g mysql mysql

2、建立目錄,並修改目錄屬主和新增環境變數

 mkdir -p /data/mysql/{3306,3307}/{data,log}

 

chown -R mysql:mysql /data/mysql/
chown -R mysql:mysql /usr/local/mysql/
echo 'export PATH=$PATH:/usr/local/mysql/bin' >> /etc/profile
source /etc/profile

3、建立配置檔案

3306

vim /data/mysql/3306/my3306.cnf

內容如下:

[mysqld]
basedir=/usr/local/mysql
datadir=/data/mysql/3306/data
port=3306
socket=/data/mysql/3306/mysql3306.sock
character-set-server=utf8
log-error=/data/mysql/3306/log/error3306.log
pid-file=/data/mysql/3306/mysqld3306.pid

3307

vim /data/mysql/3307/my3307.cnf

內容如下:

[mysqld]
basedir=/usr/local/mysql
datadir=/data/mysql/3307/data
port=3307
socket=/data/mysql/3307/mysql3307.sock
character-set-server=utf8
log-error=/data/mysql/3307/log/error3307.log
pid-file=/data/mysql/3307/mysqld3307.pid

4、資料庫初始化

(1) 3306

1
mysqld --defaults- file = /data/mysql/3306/my3306 .cnf --initialize --user=mysql

(2) 3307

1
mysqld --defaults- file = /data/mysql/3307/my3307 .cnf --initialize --user=mysql


5、資料庫啟動

( 1) 3306 

cd  /usr/local/mysql/bin
./mysqld_safe --defaults-file=/data/mysql/3306/my3306.cnf --user=mysql &

(2)3307

cd  /usr/local/mysql/bin
./mysqld_safe --defaults-file=/data/mysql/3307/my3307.cnf --user=mysql &


6、獲取初始密碼

[root@localhost bin]# less /data/mysql/3307/log/error3307.log|grep 'A temporary password'

2019-07-22T02:04:41.482707Z 1 [Note] A temporary password is generated for root@localhost: Kjipuugr0:0v


登入報錯:

[mysql@localhost ~]$ mysql -uroot -P3306 -S /data/mysql/3307/mysql3307.sock -p

Enter password: 

ERROR 1862 (HY000): Your password has expired. To log in you must change it using a client that supports expired passwords.


解決方法

(1)先關閉資料庫例項,由於不能登入,所以只能有kill -9 執行殺掉程式。

(2)再配置檔案中,新增選項   skip-grant-tables

(3)重啟資料庫例項

(4)免密碼登入:

mysql -uroot -P3306 -S /data/mysql/3306/mysql3306.sock

(5)修改密碼過期策略:

MySQL [none]>use mysql
MySQL [mysql]> update user set password_expired='N' where user='root'; 
Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0

(6)重啟資料庫例項

[mysql@localhost ~]$ mysqladmin -uroot -S /data/mysql/3306/mysql3306.sock shutdown
cd  /usr/local/mysql/bin
./mysqld_safe --defaults-file=/data/mysql/3306/my3306.cnf --user=mysql &

7、建立使用者

MySQL [(none)]>  create USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'Yxc3307';
Query OK, 0 rows affected (0.00 sec)
MySQL [(none)]> grant all privileges on *.* to 'root'@'%';
Query OK, 0 rows affected (0.00 sec)

說明:

MySQL8.0之前的版本密碼加密規則:mysql_native_password,

MySQL8.0密碼加密規則:caching_sha2_password

8、navicat 登入

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69915315/viewspace-2651281/,如需轉載,請註明出處,否則將追究法律責任。

相關文章