環(huán)境centos7.4
一.首先編譯安裝mysql5.6
1.yum install cmake
2.yum install gcc gcc-c++ autoconf* automake* zlib* libxml* ncurses-devel* libgcrypt* libtool*
3.mysql下載地址:
http://www.tjdsmy.cn/get/Downloads/MySQL-5.6/mysql-5.6.33.tar.gz
tat –zxvf mysql-5.6.33.tar.gz
cd mysql-5.6.3
3
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/local/mysql/data -DSYSCONFDIR=/usr/local/mysql/etc -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DMYSQL_UNIX_ADDR=/var/lib/mysql/mysql.sock -DMYSQL_TCP_PORT=3306 -DENABLED_LOCAL_INFILE=1 -DWITH_PARTITION_STORAGE_ENGINE=1 -DEXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci
make && make install
4.創(chuàng)建mysql用戶(hù)和組
cat /etc/passwd 查看用戶(hù)列表
cat /etc/group 查看用戶(hù)組列表
如果沒(méi)有則創(chuàng)建
groupadd mysql
useradd -g mysql mysql
5.chown -R mysql:mysql /usr/local/mysql
6.初始化mysql
cd /usr/local/mysql
scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
7.啟動(dòng)
cp support-files/my-medium.cnf /etc/my.cnf
cp support-files/mysql.server /etc/init.d/mysqld
chkconfig mysqld on
service mysqld start
8.添加path
#vi /etc/profile 在末尾輸入:
PATH=/usr/local/mysql/bin:$PATH
export PATH
#source /etc/profile 立即生效
9.設(shè)置密碼
#mysql
mysql>update mysql.user set password=password("xxxxxx") where user="root";
mysql>flush privileges;
mysql>quit;
10.測(cè)試登陸

二.設(shè)置多實(shí)例
1.多實(shí)例的基本要求
配置文件安裝路徑不能相同
數(shù)據(jù)庫(kù)目錄不能相同
啟動(dòng)腳本不能同名
端口不能相同
socket文件的生成路徑不能相同
2.由于多實(shí)例啟動(dòng)路徑等不能相同所以創(chuàng)建不同目錄
[root@localhost home]# mkdir /home/multimysql
[root@localhost home]# mkdir /home/multimysql/{etc,socket,bin,datadir}
[root@localhost home]#mkdir /home/multimysql/datadir/{3307,3308}
3.設(shè)置權(quán)限
[root@localhost home]#chown –R mysql:myql /home/multimysql
[root@localhost home]#chmod 755 /home/multimysql
4.實(shí)例初始化
/usr/local/mysql/scripts/mysql_install_db
--user=mysql --basedir=/usr/local/mysql --datadir=/home/multimysql/datadir/3307

5.創(chuàng)建實(shí)例的配置文件
先創(chuàng)建一個(gè)公用配置文件:
mkdir /home/multiMysql/etc/my.cnf.d/
vi /home/multiMysql/etc/my.cnf.d/my.cnf
然后輸入公用的內(nèi)容:
[mysqld]
skip-name-resolve
lower_case_table_names=1
innodb_file_per_table=1
back_log = 50
max_connections = 300
max_connect_errors = 1000
table_open_cache = 2048
max_allowed_packet = 16M
binlog_cache_size = 2M
max_heap_table_size = 64M
sort_buffer_size = 2M
join_buffer_size = 2M
thread_cache_size = 64
thread_concurrency = 8
query_cache_size = 64M
query_cache_limit = 2M
ft_min_word_len = 4
default-storage-engine = innodb
thread_stack = 192K
transaction_isolation = REPEATABLE-READ
tmp_table_size = 64M
log-bin=mysql-bin
binlog_format=mixed
slow_query_log
long_query_time = 1
server-id = 1
key_buffer_size = 8M
read_buffer_size = 2M
read_rnd_buffer_size = 2M
bulk_insert_buffer_size = 64M
myisam_sort_buffer_size = 128M
myisam_max_sort_file_size = 10G
myisam_repair_threads = 1
myisam_recover
innodb_additional_mem_pool_size = 16M
innodb_buffer_pool_size = 200M
innodb_data_file_path = ibdata1:10M:autoextend
innodb_file_io_threads = 8
innodb_thread_concurrency = 16
innodb_flush_log_at_trx_commit = 1
innodb_log_buffer_size = 16M
innodb_log_file_size = 512M
innodb_log_files_in_group = 3
innodb_max_dirty_pages_pct = 60
innodb_lock_wait_timeout = 120
[mysqldump]
quick
max_allowed_packet = 256M
[mysql]
no-auto-rehash
prompt=\\u@\\d \\R:\\m>
[myisamchk]
key_buffer_size = 512M
sort_buffer_size = 512M
read_buffer = 8M
write_buffer = 8M
[mysqlhotcopy]
interactive-timeout
[mysqld_safe]
open-files-limit = 8192
然后分別創(chuàng)建實(shí)例的配置文件:
root@localhost etc]# vim 3307.cnf
[client]
port = 3307
socket = /home/multimysql/socket/mysql3307.sock
[mysqld]
datadir=/home/multimysql/datadir/3307
port = 3307
socket = /home/multimysql/socket/mysql3307.sock
!includedir /home/multimysql/etc/my.cnf.d
然后把3307.cnf復(fù)制兩份命名為3308.cnf
然后分別編輯復(fù)制的兩份配置文件,把端口和socket進(jìn)行修改:
6. 然后我們來(lái)編輯2個(gè)啟動(dòng)腳本:
[root@localhost bin]# vim /home/multimysql/bin/mysql3307
#!/bin/bash
mysql_port=3307
mysql_username="root"
mysql_password=""
function_start_mysql()
{
printf "Starting MySQL...\n"
mysqld_safe --defaults-file=/home/multimysql/etc/${mysql_port}.cnf 2>&1 > /dev/null &
}
function_stop_mysql()
{
printf "Stoping MySQL...\n"
mysqladmin -u ${mysql_username} -p${mysql_password} -S /home/multimysql/socket/mysql${mysql_port}.sock shutdown
}
function_restart_mysql()
{
printf "Restarting MySQL...\n"
function_stop_mysql
function_start_mysql
}
function_kill_mysql()
{
kill -9 $(ps -ef | grep 'bin/mysqld_safe' | grep ${mysql_port} | awk '{printf $2}')
kill -9 $(ps -ef | grep 'libexec/mysqld' | grep ${mysql_port} | awk '{printf $2}')
}
case $1 in
start)
function_start_mysql;;
stop)
function_stop_mysql;;
kill)
function_kill_mysql;;
restart)
function_stop_mysql
function_start_mysql;;
*)
echo "Usage: /data/dbdata_${mysql_port}/mysqld {start|stop|restart|kill}";;
esac
7.嘗試打開(kāi)實(shí)例
[root@localhost bin]# /home/multimysql/bin/mysql3307 start

查看是否有進(jìn)程

鏈接實(shí)例
mysql -uroot -S /home/multimysql/socket/mysql3307.sock

8.其他實(shí)例參考3307,3308