標籤:關閉自動 type server commit gbk pts basedir restart lock
源碼安裝mysql
yum install ncurses-devel libaio-devel -ymkdir /server/tools -pcd /server/toolswget https://cmake.org/files/v2.8/cmake-2.8.8.tar.gztar xf cmake-2.8.8.tar.gzcd cmake-2.8.8./configuregmake gmake installwhich cmake/usr/local/bin/cmakecd ..useradd -s /sbin/nologin -M mysqlwget https://downloads.mysql.com/archives/get/file/mysql-5.5.49.tar.gztar xf mysql-5.5.49.tar.gzcd mysql-5.5.49cmake . -DCMAKE_INSTALL_PREFIX=/application/mysql-5.5.49 -DMYSQL_DATADIR=/application/mysql-5.5.49/data -DMYSQL_UNIX_ADDR=/application/mysql-5.5.49/tmp/mysql.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DEXTRA_CHARSETS=gbk,gb2312,utf8,ascii -DENABLED_LOCAL_INFILE=ON -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_FEDERATED_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITHOUT_EXAMPLE_STORAGE_ENGINE=1 -DWITHOUT_PARTITION_STORAGE_ENGINE=1 -DWITH_FAST_MUTEXES=1 -DWITH_ZLIB=bundled -DENABLED_LOCAL_INFILE=1 -DWITH_READLINE=1 -DWITH_EMBEDDED_SERVER=1 -DWITH_DEBUG=0make make installln -s /application/mysql-5.5.49/ /application/mysqlls /application/mysql
二進位包安裝mysql
useradd -s /sbin/nologin -M mysqlmkdir /application mkdir /server/tools -pcd /server/toolswget https://downloads.mysql.com/archives/get/file/mysql-5.5.49-linux2.6-x86_64.tar.gztar xf mysql-5.5.49-linux2.6-x86_64.tar.gzmv mysql-5.5.49-linux2.6-x86_64 /application/mysql-5.5.49ln -s /application/mysql-5.5.49/ /application/mysqlsed -i ‘s#/usr/local/#/application/#g‘ /application/mysql/bin/mysqld_safecd /application/mysql
建立多執行個體設定檔和啟動指令碼
mkdir -p /data/{3306,3307}/datavim /data/3306/my.cnf #3306設定檔[client]port = 3306socket = /data/3306/mysql.sock[mysql]no-auto-rehash[mysqld]user = mysqlport = 3306socket = /data/3306/mysql.sockbasedir = /application/mysqldatadir = /data/3306/dataopen_files_limit = 1024back_log = 600max_connections = 800max_connect_errors = 3000table_cache = 614external-locking = FALSEmax_allowed_packet = 8Msort_buffer_size = 1Mjoin_buffer_size = 1Mthread_cache_size = 100thread_concurrency = 2query_cache_size = 2Mquery_cache_limit = 1Mquery_cache_min_res_unit = 2k#default_table_type = InnoDBthread_stack = 192K#transaction_isolation = READ-COMMITTEDtmp_table_size = 2Mmax_heap_table_size = 2Mlong_query_time = 1pid-file = /data/3306/mysql.pidrelay-log = /data/3306/relay-binrelay-log-info-file = /data/3306/relay-log.infobinlog_cache_size = 1Mmax_binlog_cache_size = 1Mmax_binlog_size = 2Mkey_buffer_size = 16Mread_buffer_size = 1Mread_rnd_buffer_size = 1Mbulk_insert_buffer_size = 1Mlower_case_table_names = 1skip-name-resolveslave-skip-errors = 1032,1062replicate-ignore-db = mysqlserver-id = 1innodb_additional_mem_pool_size = 4Minnodb_buffer_pool_size = 32Minnodb_data_file_path = ibdata1:128M:autoextendinnodb_file_io_threads = 4innodb_thread_concurrency = 8innodb_flush_log_at_trx_commit = 2innodb_log_buffer_size = 2Minnodb_log_file_size = 4Minnodb_log_files_in_group = 3innodb_max_dirty_pages_pct = 90innodb_lock_wait_timeout = 120innodb_file_per_table = 0[mysqldump]quickmax_allowed_packet = 2M[mysqld_safe]log-error=/data/3306/mysql_peter3306.errpid-file=/data/3306/mysqld.pidvim /data/3307/my.cnf #3307設定檔[client]port = 3307socket = /data/3307/mysql.sock[mysql]no-auto-rehash[mysqld]user = mysqlport = 3307socket = /data/3307/mysql.sockbasedir = /application/mysqldatadir = /data/3307/dataopen_files_limit = 1024back_log = 600max_connections = 800max_connect_errors = 3000table_cache = 614external-locking = FALSEmax_allowed_packet = 8Msort_buffer_size = 1Mjoin_buffer_size = 1Mthread_cache_size = 100thread_concurrency = 2query_cache_size = 2Mquery_cache_limit = 1Mquery_cache_min_res_unit = 2k#default_table_type = InnoDBthread_stack = 192K#transaction_isolation = READ-COMMITTEDtmp_table_size = 2Mmax_heap_table_size = 2Mlong_query_time = 1pid-file = /data/3307/mysql.pidrelay-log = /data/3307/relay-binrelay-log-info-file = /data/3307/relay-log.infobinlog_cache_size = 1Mmax_binlog_cache_size = 1Mmax_binlog_size = 2Mkey_buffer_size = 16Mread_buffer_size = 1Mread_rnd_buffer_size = 1Mbulk_insert_buffer_size = 1Mlower_case_table_names = 1skip-name-resolveslave-skip-errors = 1032,1062replicate-ignore-db = mysqlserver-id = 3innodb_additional_mem_pool_size = 4Minnodb_buffer_pool_size = 32Minnodb_data_file_path = ibdata1:128M:autoextendinnodb_file_io_threads = 4innodb_thread_concurrency = 8innodb_flush_log_at_trx_commit = 2innodb_log_buffer_size = 2Minnodb_log_file_size = 4Minnodb_log_files_in_group = 3innodb_max_dirty_pages_pct = 90innodb_lock_wait_timeout = 120innodb_file_per_table = 0[mysqldump]quickmax_allowed_packet = 2M[mysqld_safe]log-error=/data/3307/mysql_peter3307.errpid-file=/data/3307/mysqld.pidvim /data/3306/mysql #3306啟動指令碼#!/bin/bash#####################################this scripts is created by peter at 2017-08-31#mail:[email protected]#####################################initport=3306mysql_user="root"mysql_pwd="123456"CmdPath="/application/mysql/bin"mysql_sock="/data/${port}/mysql.sock"#startup functionfunction_start_mysql(){ if [ ! -e "$mysql_sock" ];then printf "Starting MySQL...\n" /bin/sh ${CmdPath}/mysqld_safe --defaults-file=/data/${port}/my.cnf 2>&1 >/dev/null & else printf "MySQL is running...\n" exit fi}#stop functionfunction_stop_mysql(){ if [ ! -e "$mysql_sock" ];then printf "MySQL is stopped...\n" exit else printf "Stopping MySQL...\n" ${CmdPath}/mysqladmin -u ${mysql_user} -p${mysql_pwd} -S /data/${port}/mysql.sock shutdown fi}#restart functionfunction_restart_mysql(){ printf "Restarting MySQL...\n" function_stop_mysql sleep 2 function_start_mysql}case $1 instart) function_start_mysql;;stop) function_stop_mysql;;restart) function_restart_mysql;;*) printf "Usage: /data/${port}/mysql {start|stop|restart}\n"esacvim /data/3307/mysql #3307啟動指令碼#!/bin/bash#####################################this scripts is created by peter at 2017-08-31#mail:[email protected]#####################################initport=3307mysql_user="root"mysql_pwd="123456"CmdPath="/application/mysql/bin"mysql_sock="/data/${port}/mysql.sock"#startup functionfunction_start_mysql(){ if [ ! -e "$mysql_sock" ];then printf "Starting MySQL...\n" /bin/sh ${CmdPath}/mysqld_safe --defaults-file=/data/${port}/my.cnf 2>&1 >/dev/null & else printf "MySQL is running...\n" exit fi}#stop functionfunction_stop_mysql(){ if [ ! -e "$mysql_sock" ];then printf "MySQL is stopped...\n" exit else printf "Stopping MySQL...\n" ${CmdPath}/mysqladmin -u ${mysql_user} -p${mysql_pwd} -S /data/${port}/mysql.sock shutdown fi}#restart functionfunction_restart_mysql(){ printf "Restarting MySQL...\n" function_stop_mysql sleep 2 function_start_mysql}case $1 instart) function_start_mysql;;stop) function_stop_mysql;;restart) function_restart_mysql;;*) printf "Usage: /data/${port}/mysql {start|stop|restart}\n"esactree /data/data├── 3306│ ├── data│ ├── my.cnf│ └── mysql└── 3307 ├── data ├── my.cnf└── mysql 設定檔許可權,將mysql用戶端命令加入路徑
chown -R mysql.mysql /datafind /data -type f -name mysql | xargs chmod 700 // 開機檔案中有資料庫管理員密碼find /data -type f -name mysql -exec ls -l {} \;-rwx------ 1 mysql mysql 1203 Sep 2 21:12 /data/3307/mysql-rwx------ 1 mysql mysql 1204 Sep 2 21:12 /data/3306/mysqlln -s /application/mysql/bin/* /usr/local/sbin 初始化資料庫,啟動多執行個體,加入開機啟動
/application/mysql/scripts/mysql_install_db --basedir=/application/mysql --datadir=/data/3306/data --user=mysql/application/mysql/scripts/mysql_install_db --basedir=/application/mysql --datadir=/data/3307/data --user=mysqlchown -R mysql.mysql /data/data/3306/mysql start/data/3307/mysql startnetstat -nutlp | grep 330tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 27934/mysqld tcp 0 0 0.0.0.0:3307 0.0.0.0:* LISTEN 28653/mysqld echo "#mysql multi instances" >> /etc/rc.localecho "/data/3306/mysql start" >> /etc/rc.localecho "/data/3307/mysql start" >> /etc/rc.localtail -3 /etc/rc.local#mysql multi instances/data/3306/mysql start/data/3307/mysql start
登入不同執行個體,設定管理員密碼
mysql -S /data/3306/mysql.sockmysql -S /data/3307/mysql.sockmysqladmin -u root -S /data/3306/mysql.sock password ‘123456‘mysqladmin -u root -S /data/3307/mysql.sock password ‘123456‘mysql -uroot -p123456 -S /data/3306/mysql.sockmysql -uroot -p123456 -S /data/3306/mysql.sock
如何再增加一個執行個體?
#多執行個體本質是多連接埠,多設定檔。添加的流程是改配置,改啟動指令碼,初始化,給許可權,啟動
mkdir -p /data/3308/data\cp /data/3306/my.cnf /data/3308/\cp /data/3306/mysql /data/3308/sed -i ‘s#3306#3308#g‘ /data/3308/my.cnfsed -i ‘s#server-id = 1#server-id = 8#g‘ /data/3308/my.cnfsed -i ‘s#3306#3308#g‘ /data/3308/mysqlchmod 700 /data/3308/mysql/application/mysql/scripts/mysql_install_db --basedir=/application/mysql --datadir=/data/3308/data --user=mysqlchown -R mysql.mysql /data/3308/data/3308/mysql startecho "/data/3308/mysql start" >> /etc/rc.localnetstat -nutlp | grep 3308tcp 0 0 0.0.0.0:3308 0.0.0.0:* LISTEN 29518/mysqld
單機多執行個體主從複製
主庫:Master 3306從庫:Slave1 3307從庫:Slave2 3308#Mastervim /data/3306/my.cnf[mysqld]...server-id = 1log-bin = /data/3306/mysql-bin/data/3306/mysql restartmysql -uroot -p123456 -S /data/3306/mysql.sockmysql>show variables like ‘server_id‘;mysql>show variables like ‘log_bin‘;mysql>grant replication slave on *.* to ‘rep‘@‘172.16.1.%‘ identified by ‘123456‘;mysql>flush privileges;mysql>select user,host from mysql.user;mysql>show grants for ‘rep‘@‘172.16.1.%‘;mysql>flush table with read lock; // 視窗不能關閉,關閉自動解鎖mysql>show master status;#新開視窗mkdir /server/backup/ -pmysqldump -uroot -p123456 -S /data/3306/mysql.sock --events -A -B | gzip > /server/backup/mysql_bak.$(date +%F).sql.gzls -l /server/backupmysql>show master status;mysql>unlock tables;#Slave1vim /data/3307/my.cnf[mysqld]...server-id = 3 // id必須唯一/data/3307/mysql restartcd /server/backupls -lgzip -d mysql_bak.2017-09-03.sql.gz mysql -uroot -p123456 -S /data/3307/mysql.sock < mysql_bak.2017-09-03.sqlmysql -uroot -p123456 -S /data/3307/mysql.sock << EOFCHANGE MASTER TOMASTER_HOST=‘172.16.1.34‘,MASTER_PORT=3306,MASTER_USER=‘rep‘,MASTER_PASSWORD=‘123456‘,MASTER_LOG_FILE=‘mysql-bin.000001‘,MASTER_LOG_POS=332;EOFcat /data/3307/data/master.infomysql -uroot -p123456 -S /data/3307/mysql.sock -e "start slave;"mysql -uroot -p123456 -S /data/3307/mysql.sock -e "show slave status\G;" | egrep "IO_Running|SQL_Running|_Behind_Master"#Mastermysql -uroot -p123456 -S /data/3306/mysql.sock -e "create database peter;"#Slave1mysql -uroot -p123456 -S /data/3307/mysql.sock -e "show databases like ‘peter‘;"
MySQL-5.5.49安裝、多執行個體、主從複製