雙mysql,隻是在節約成本的前提下,考慮使用的,更多的是在開發測試環境使用,若是生産環境,盡量不建議如此使用。
若是生産環境,森哥不建議雙MySQL共存。而且,盡量建議使用提供商提供的MySQL服務。相對優化、安全、備份等,都比自搭的要好多了。像阿裡雲的RDS,對MySQL的開源進行二次開發的。比我們自搭的要好的多。
一、先預設安裝一個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