雙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、上傳至服務器解壓
<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>
閱讀更多 森哥瞧世界 的文章