修改/etc/init.d/mysql 啟動檔案及/etc/my.cnf mysql 組態設定檔。
#mkdir -p /var/lib/mysql3307
chown mysql:mysql /var/lib/mysql3307/
cp -p /etc/my.cnf /etc/my3307.cnf
vim /etc/my3307.cnf
~略~ port = 3307 datadir = /var/lib/mysql3307/ socket = /var/lib/mysql3307/mysql.sock ~略~
cp -p /etc/init.d/mysql
或若是原本不是Mysql-5.6.x的版本,可以到Mysql官網下載,並擷取其設定檔
#mkdir /tmp/test;cd /tmp/test/;rpm2cpio MySQL-server-5.6.x|cpio -idvc #ls -l /tmp/test/etc/init.d/mysql #cp -p /tmp/test/etc/init.d/mysql /etc/init.d/mysql3307
--port=*) port=`echo "$arg" | sed -e 's/^[^=]*=//'` ;;
conf=/etc/my3307.cnf
parse_server_arguments `$print_defaults $extra_args mysqld server mysql_server mysql.server -c /etc/my3307.cnf`
$bindir/mysqld_safe --datadir="$datadir" --pid-file="$mysqld_pid_file_path" --port="$port" --socket="$datadir"/mysq.sock $other_args >/dev/null 2>&1 &
mysql_install_db --user=mysql --defaults-file=/etc/my3307.cnf --datadir=/var/lib/mysql3307/
/etc/init.d/mysql3307 start Starting MySQL.. SUCCESS!
mysql -uroot -P3307 -p -h127.0.0.1 -S /var/lib/mysql3307/
-u 帳號 , -h 連接該資料庫的IP或hostname , -S socket位置 , -P port Number,-p 密碼
方法一是多個設定檔及多個執行檔方式,來建立多個執行個體,像是
/etc/init.d/mysql3307 -> /etc/my3307.cnf /etc/init.d/mysql3306 -> /etc/my3306.cnf
但是,每次修改增加或修改設定檔是很麻煩,因此貼心的Mysql 便設計出mysqld_multi工具,只要單一啟動檔及單依設定檔就可以產生多個執行個體
#mkdir /mydb;mkdir /mydb2
chown mysql:mysql /mydb;chown mysql:mysql /mydb2
mysql_install_db --user=mysql --defaults-file=/etc/my2.cnf --datadir=/mydb/
mysql_install_db --user=mysql --defaults-file=/etc/my2.cnf --datadir=/mydb2/
[mysqld_multi] mysqld = /usr/bin/mysqld_safe mysqladmin = /usr/bin/mysqladmin #user = root #password = qwedcxza [mysqld3308] # GENERAL # user = mysql default_storage_engine = InnoDB port = 3308 socket = /mydb/mysql3308.sock pid_file = /mydb/mysql3308.pid # MyISAM # key_buffer_size = 16M myisam_recover = FORCE,BACKUP # SAFETY # max_allowed_packet = 16M max_connect_errors = 1000000 skip_name_resolve innodb = FORCE # DATA STORAGE # datadir = /mydb/ [mysqld3309] # GENERAL # user = mysql default_storage_engine = InnoDB port = 3309 socket = /mydb/mysql3309.sock pid_file = /mydb/mysql3309.pid # MyISAM # key_buffer_size = 16M myisam_recover = FORCE,BACKUP # SAFETY # max_allowed_packet = 16M max_connect_errors = 1000000 skip_name_resolve innodb = FORCE # DATA STORAGE # datadir = /mydb2/
mysqld_multi --defaults-file=/etc/my2.cnf start 3308
mysqld_multi --defaults-file=/etc/my2.cnf start 3309
mysql -uroot -P3308 -p -S /mydb/mysql3308.sock mysql -e "show tables"
mysql -uroot -P3309 -p -S /mydb/mysql3309.sock mysql -e "show tables"