雙mysql共存(MySQL8.0與MySQL5.7)

雙mysql,只是在節約成本的前提下,考慮使用的,更多的是在開發測試環境使用,若是生產環境,儘量不建議如此使用。

若是生產環境,森哥不建議雙MySQL共存。而且,儘量建議使用提供商提供的MySQL服務。相對優化、安全、備份等,都比自搭的要好多了。像阿里雲的RDS,對MySQL的開源進行二次開發的。比我們自搭的要好的多。

雙mysql共存(MySQL8.0與MySQL5.7)

一、先默認安裝一個mysql

已安裝8.0版本

二、安裝第二個mysql

1、至官網下載mysql源碼

網址:https://dev.mysql.com/downloads/mysql/選擇OS版本,Mysql版本,這裡以centos7+mysql5.7為例

備註:請選擇Source Code,否則cmake會失敗

拖動至最底下,選擇mysql-5.7.28.tar.gz,大概為51.9M左右

2、上傳至服務器解壓

<code> tar -zxvf mysql-5.7.28.tar.gz/<code>

3、環境安裝

在安裝的時,需用到boots下載:wget http://www.sourceforge.net/projects/boost/files/boost/1.59.0/boost_1_59_0.tar.gz

<code> tar -zxvf boost_1_59_0.tar.gz
 mv boost_1_59_0 /opt/boost/<code>

4、mysql安裝

4.1、編譯安裝
<code> cd mysql-5.7.28
 cmake -DCMAKE_INSTALL_PREFIX=/opt/mysql5.7 -DMYSQL_DATADIR=/opt/mysql5.7/data -DEXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITH_FEDERATED_STORAGE_ENGINE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DWITH_PERFSCHEMA_STORAGE_ENGINE=1 -DMYSQL_UNIX_ADDR=/opt/mysql5.7/mysqld.sock -DMYSQL_TCP_PORT=3307 -DWITH_DEBUG=0 -DENABLED_LOCAL_INFILE=1 -DWITH_READLINE=1 -DWITH_SSL=system -DWITH_ZLIB=system -DDOWNLOAD_BOOST=1 -DWITH_BOOST=/opt/boost
 make && make install/<code>
4.2、創建my.cnf文件

進入/opt/mysql5.7

<code> touch /opt/mysql5.7/my.cnf
 [mysqld]
 user=mysql
 port=3307
 basedir=/opt/mysql5.7
 datadir=/opt/mysql5.7/data
 socket=/opt/mysql5.7/mysql.sock
 lower_case_table_names=1
 default-storage-engine=INNODB
 character_set_server=utf8mb4
 innodb_default_row_format=DYNAMIC
 innodb_large_prefix=ON
 innodb_file_format=Barracuda
 innodb_log_file_size=2G
 max_connections=500
 innodb_buffer_pool_size=1G
 #validate_password=off
 symbolic-links=0
 ​
 ​
 [client]
 default-character-set=utf8mb4
 socket=/opt/mysql5.7/mysql.sock
 ​
 [mysqld_safe]
 open-files-limit = 8192
 log-error=/var/log/mysqld5.7.log
 socket=/opt/mysql5.7/mysql.sock
 pid-file=/opt/mysql5.7/mysqld.pid/<code>

注: 1、端口一定記得修改,不要與原來的衝突。2、下面這些配置信息,是為了用在jira系統上。根據要求增加的配置內容

<code> default-storage-engine=INNODB
 character_set_server=utf8mb4
 innodb_default_row_format=DYNAMIC
 innodb_large_prefix=ON
 innodb_file_format=Barracuda/<code>
4.3、分配權限
<code> chown mysql.mysql -R /opt/mysql5.7
 cp /opt/mysql5.7/support-files/mysql.server /etc/init.d/mysql
 chmod 755 /etc/init.d/mysql/<code>
4.4、修改配置並添加服務
<code> vim /etc/init.d/mysql/<code>

添加以下文件

<code> ......
 basedir=/opt/mysql5.7
 datadir=/opt/mysql5.7/data
 ......
  # Try to find basedir in /etc/my.cnf
  conf=/opt/mysql5.7/my.cnf/<code>

修改以下參數

<code> 把$bindir/mysqld_safe --datadir=$datadir --pid-file=$server_pid_file $other_args >/dev/null 2>&1&替換為:
 ​
 $bindir/mysqld_safe --defaults-file=/opt/mysql5.7/my.cnf --datadir=$datadir --pid-file=$server_pid_file $other_args >/dev/null 2>&1 &/<code>

註釋掉下面這句(前面加個#即可):

<code> parse_server_arguments `$print_defaults $extra_args mysqld server mysql_server mysql.server`/<code>

保存退出並添加服務:

<code> chkconfig --add /etc/init.d/mysql/<code>
4.5、啟動mysql
<code> /etc/init.d/mysql start/<code>

5、密碼初始化

mysql5.7或以上版本的mysql,都會有一個初始化的密碼,由於是非正常安裝的,具體密碼,也不知道是多少,也懶得去掉。就使用如下的方法,優雅的修改密碼。

5.1、先停止mysql5.7版本的進程
<code> /etc/init.d/mysql stop/<code>
5.2、通過mysqld_safe啟動
<code> /opt/mysql5.7/bin/mysqld_safe --defaults-file=/opt/mysql5.7/my.cnf --skip-grant-tables --skip-networking &/<code>

添加--skip-networking參數,讓實例關閉監聽端口,自然也就無法建立TCP連接,而只能通過本地socket進行連接。

5.3、修改密碼
<code> /opt/mysql5.7/bin/mysql -S /opt/mysql5.7/mysql.sock
 ​
 mysql> update mysql.user set authentication_string=password('123456') where host='localhost' and user='root';
 Query OK, 0 rows affected, 1 warning (0.00 sec)
 Rows matched: 1 Changed: 0 Warnings: 1
 ​
 mysql> flush privileges;
 Query OK, 0 rows affected (0.00 sec)/<code>

注:5.7或以上的版本,使用:authentication_string5.6或以下版本,請使用:password

5.4、退出並重啟mysql5.7

退出:

<code> /opt/mysql5.7/bin/mysqld_safe --defaults-file=/opt/mysql5.7/my.cnf --skip-grant-tables --skip-networking &
 /etc/init.d/mysql start/<code>



分享到:


相關文章: