天天看點

mysql 5.7和8.0差別_雙mysql共存(MySQL8.0與MySQL5.7)

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

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

mysql 5.7和8.0差別_雙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、上傳至伺服器解壓

 tar -zxvf mysql-5.7.28.tar.gz
           

3、環境安裝

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

 tar -zxvf boost_1_59_0.tar.gz mv boost_1_59_0 /opt/boost
           

4、mysql安裝

4.1、編譯安裝
 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
           
4.2、建立my.cnf檔案

進入/opt/mysql5.7

 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
           
注: 1、端口一定記得修改,不要與原來的沖突。2、下面這些配置資訊,是為了用在jira系統上。根據要求增加的配置内容
 default-storage-engine=INNODB character_set_server=utf8mb4 innodb_default_row_format=DYNAMIC innodb_large_prefix=ON innodb_file_format=Barracuda
           
4.3、配置設定權限
 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
           
4.4、修改配置并添加服務
 vim /etc/init.d/mysql
           

添加以下檔案

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

修改以下參數

 把$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 &
           

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

 parse_server_arguments `$print_defaults $extra_args mysqld server mysql_server mysql.server`
           

儲存退出并添加服務:

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

5、密碼初始化

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

5.1、先停止mysql5.7版本的程序
 /etc/init.d/mysql stop
           
5.2、通過mysqld_safe啟動
 /opt/mysql5.7/bin/mysqld_safe --defaults-file=/opt/mysql5.7/my.cnf --skip-grant-tables --skip-networking &
           
添加--skip-networking參數,讓執行個體關閉監聽端口,自然也就無法建立TCP連接配接,而隻能通過本地socket進行連接配接。
5.3、修改密碼
 /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)
           
注:5.7或以上的版本,使用:authentication_string5.6或以下版本,請使用:password
5.4、退出并重新開機mysql5.7

退出:

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