MySQL多实例的安装
生活随笔
收集整理的這篇文章主要介紹了
MySQL多实例的安装
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
安裝MySQL-5.5.49
安裝包的獲取:http://mirrors.sohu.com/mysql/?
上傳MySQL包,解壓
mkdir?-p?/home/oldboy/tools cd?/home/oldboy/tools rz?-y?#mysql-5.5.49.tar.gz ll?-sh tar?xf?mysql-5.5.49.tar.gz? cd?mysql-5.5.49編譯安裝
cmake?.?-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=0 make?&&?make?install?&&?echo?$? cd?..創建軟鏈接
ln?-s?/application/mysql-5.5.49/?/application/mysql配置多實例
創建數據庫文件目錄,配置文件
mkdir?-p?/data/{3306,3307}/data touch?/data/{3306,3307}/{mysql,my.cnf}tree?/data/ /data/ ├──?3306#<==實例3306 │???├──?data#<==3306數據庫文件目錄 │???├──?my.cnf#<==3306配置文件 │???└──?mysql#<==3306啟動腳本 └──?3307#<==實例3307├──?data#<==3307數據庫文件目錄├──?my.cnf#<==3307配置文件└──?mysql#<==3307啟動腳本實例3306配置文件
vim?/data/3306/my.cnf [client] port????????????=?3306 socket??????????=?/data/3306/mysql.sock [mysql] no-auto-rehash [mysqld] user????=?mysql port????=?3306 socket??=?/data/3306/mysql.sock basedir?=?/application/mysql datadir?=?/data/3306/data open_files_limit?=?1024 back_log?=?600 max_connections?=?800 max_connect_errors?=?3000 table_cache?=?614 external-locking?=?FALSE max_allowed_packet?=8M sort_buffer_size?=?1M join_buffer_size?=?1M thread_cache_size?=?100 thread_concurrency?=?2 query_cache_size?=?2M query_cache_limit?=?1M query_cache_min_res_unit?=?2k #default_table_type?=?InnoDB thread_stack?=?192K #transaction_isolation?=?READ-COMMITTED tmp_table_size?=?2M max_heap_table_size?=?2M long_query_time?=?1 #log_long_format #log-error?=?/data/3306/error.log #log-slow-queries?=?/data/3306/slow.log pid-file?=?/data/3306/mysql.pid log-bin?=?/data/3306/mysql-bin relay-log?=?/data/3306/relay-bin relay-log-info-file?=?/data/3306/relay-log.info binlog_cache_size?=?1M max_binlog_cache_size?=?1M max_binlog_size?=?2M expire_logs_days?=?7 key_buffer_size?=?16M read_buffer_size?=?1M read_rnd_buffer_size?=?1M bulk_insert_buffer_size?=?1M #myisam_sort_buffer_size?=?1M #myisam_max_sort_file_size?=?10G #myisam_max_extra_sort_file_size?=?10G #myisam_repair_threads?=?1 #myisam_recover lower_case_table_names?=?1 skip-name-resolve slave-skip-errors?=?1032,1062 replicate-ignore-db=mysql server-id?=?1 innodb_additional_mem_pool_size?=?4M innodb_buffer_pool_size?=?32M innodb_data_file_path?=?ibdata1:128M:autoextend innodb_file_io_threads?=?4 innodb_thread_concurrency?=?8 innodb_flush_log_at_trx_commit?=?2 innodb_log_buffer_size?=?2M innodb_log_file_size?=?4M innodb_log_files_in_group?=?3 innodb_max_dirty_pages_pct?=?90 innodb_lock_wait_timeout?=?120 innodb_file_per_table?=?0 [mysqldump] quick max_allowed_packet?=?2M [mysqld_safe] log-error=/data/3306/mysql_oldboy3306.err pid-file=/data/3306/mysqld.pid實例3307配置文件
vim?/data/3307/my.cnf [client] port????????????=?3307 socket??????????=?/data/3307/mysql.sock [mysql] no-auto-rehash [mysqld] user????=?mysql port????=?3307 socket??=?/data/3307/mysql.sock basedir?=?/application/mysql datadir?=?/data/3307/data open_files_limit?=?1024 back_log?=?600 max_connections?=?800 max_connect_errors?=?3000 table_cache?=?614 external-locking?=?FALSE max_allowed_packet?=8M sort_buffer_size?=?1M join_buffer_size?=?1M thread_cache_size?=?100 thread_concurrency?=?2 query_cache_size?=?2M query_cache_limit?=?1M query_cache_min_res_unit?=?2k #default_table_type?=?InnoDB thread_stack?=?192K #transaction_isolation?=?READ-COMMITTED tmp_table_size?=?2M max_heap_table_size?=?2M #long_query_time?=?1 #log_long_format #log-error?=?/data/3307/error.log #log-slow-queries?=?/data/3307/slow.log pid-file?=?/data/3307/mysql.pid #log-bin?=?/data/3307/mysql-bin relay-log?=?/data/3307/relay-bin relay-log-info-file?=?/data/3307/relay-log.info binlog_cache_size?=?1M max_binlog_cache_size?=?1M max_binlog_size?=?2M expire_logs_days?=?7 key_buffer_size?=?16M read_buffer_size?=?1M read_rnd_buffer_size?=?1M bulk_insert_buffer_size?=?1M #myisam_sort_buffer_size?=?1M #myisam_max_sort_file_size?=?10G #myisam_max_extra_sort_file_size?=?10G #myisam_repair_threads?=?1 #myisam_recover lower_case_table_names?=?1 skip-name-resolve slave-skip-errors?=?1032,1062 replicate-ignore-db=mysql server-id?=?3 innodb_additional_mem_pool_size?=?4M innodb_buffer_pool_size?=?32M innodb_data_file_path?=?ibdata1:128M:autoextend innodb_file_io_threads?=?4 innodb_thread_concurrency?=?8 innodb_flush_log_at_trx_commit?=?2 innodb_log_buffer_size?=?2M innodb_log_file_size?=?4M innodb_log_files_in_group?=?3 innodb_max_dirty_pages_pct?=?90 innodb_lock_wait_timeout?=?120 innodb_file_per_table?=?0 [mysqldump] quick max_allowed_packet?=?2M [mysqld_safe] log-error=/data/3307/mysql_oldboy3307.err pid-file=/data/3307/mysqld.pid實例3306啟動腳本
vim?/data/3306/mysql #!/bin/sh ################################################ #this?scripts?is?created?by?oldboy?at?2007-06-09 #oldboy?QQ:31333741 #site:http://www.etiantian.org #blog:http://oldboy.blog.51cto.com #oldboy?trainning?QQ?group:?208160987?226199307??44246017 ################################################ #init port=3306 mysql_user="root" mysql_pwd="oldboy" CmdPath="/application/mysql/bin" mysql_sock="/data/${port}/mysql.sock" #startup?function function_start_mysql() {if?[?!?-e?"$mysql_sock"?];thenprintf?"Starting?MySQL...\n"/bin/sh?${CmdPath}/mysqld_safe?--defaults-file=/data/${port}/my.cnf?2>&1?>?/dev/null?&elseprintf?"MySQL?is?running...\n"exitfi } #stop?function function_stop_mysql() {if?[?!?-e?"$mysql_sock"?];thenprintf?"MySQL?is?stopped...\n"exitelseprintf?"Stoping?MySQL...\n"${CmdPath}/mysqladmin?-u?${mysql_user}?-p${mysql_pwd}?-S?/data/${port}/mysql.sock?shutdownfi } #restart?function function_restart_mysql() {printf?"Restarting?MySQL...\n"function_stop_mysqlsleep?2function_start_mysql } case?$1?in start)function_start_mysql ;; stop)function_stop_mysql ;; restart)function_restart_mysql ;; *)printf?"Usage:?/data/${port}/mysql?{start|stop|restart}\n" esac實例3307啟動腳本
vim?/data/3307/mysql #!/bin/sh ################################################ #this?scripts?is?created?by?oldboy?at?2007-06-09 #oldboy?QQ:31333741 #site:http://www.etiantian.org #blog:http://oldboy.blog.51cto.com #oldboy?trainning?QQ?group:?208160987?226199307??44246017 ################################################ #init port=3307 mysql_user="root" mysql_pwd="oldboy" CmdPath="/application/mysql/bin" mysql_sock="/data/${port}/mysql.sock" #startup?function function_start_mysql() {if?[?!?-e?"$mysql_sock"?];thenprintf?"Starting?MySQL...\n"/bin/sh?${CmdPath}/mysqld_safe?--defaults-file=/data/${port}/my.cnf?2>&1?>?/dev/null?&elseprintf?"MySQL?is?running...\n"exitfi } #stop?function function_stop_mysql() {if?[?!?-e?"$mysql_sock"?];thenprintf?"MySQL?is?stopped...\n"exitelseprintf?"Stoping?MySQL...\n"${CmdPath}/mysqladmin?-u?${mysql_user}?-p${mysql_pwd}?-S?/data/${port}/mysql.sock?shutdownfi } #restart?function function_restart_mysql() {printf?"Restarting?MySQL...\n"function_stop_mysqlsleep?2function_start_mysql } case?$1?in start)function_start_mysql ;; stop)function_stop_mysql ;; restart)function_restart_mysql ;; *)printf?"Usage:?/data/${port}/mysql?{start|stop|restart}\n" esac修改啟動腳本的權限
find?/data?-type?f?-name?"mysql"|xargs?chmod?700授權mysql用戶管理/data目錄
chown?-R?mysql.mysql?/data初使化數據庫
cd?/application/mysql/scripts/ ./mysql_install_db?--user=mysql?--basedir=/application/mysql?--datadir=/data/3306/data/ ./mysql_install_db?--user=mysql?--basedir=/application/mysql?--datadir=/data/3307/data/啟動多實例,加入開機自啟動
/data/3306/mysql?start /data/3307/mysql?start netstat?-tunlp?|grep?330#?echo命令的?-e參數處理特殊字符;\n?換行且光標移至行首 echo?-e?"\n##mysql?multi?instance\n/data/3306/mysql?start\n/data/3307/mysql?start">>/etc/rc.localtail?-3?/etc/rc.local ##mysql?multi?instance /data/3306/mysql?start /data/3307/mysql?start設置環境變量
方法一:將mysql的相關命令放入到已經是環境變量的目錄下(推薦!!)
cp?/application/mysql/bin/*?/usr/local/bin/方法二
export?PATH=/application/mysql-5.5.49/bin/:$PATH echo?'export?PATH=/application/mysql-5.5.49/bin/:$PATH'?>>/etc/profile tail?-1?/etc/profile source?/etc/profile echo?$PATH登錄與退出多實例
多實例的登錄(無密碼)
mysql?-S?/data/3306/mysql.sock mysql?-S?/data/3307/mysql.sock退出登錄(4種)
mysql>?exit mysql>?quit mysql>?Ctrl?+?c mysql>?Ctrl?+?d設置密碼
mysqladmin?-uroot?password?'oldboy123'?-S?/data/3306/mysql.sock mysqladmin?-uroot?password?'oldboy123'?-S?/data/3307/mysql.sock更改密碼為:oldboy456
mysqladmin?-uroot?-poldboy123?password?'oldboy456'?-S?/data/3306/mysql.sock多實例的登錄(有密碼)
mysql?-uroot?-poldboy123?-S?/data/3306/mysql.sock mysql?-uroot?-poldboy123?-S?/data/3307/mysql.sock再加一個實例3308
mkdir?/data/3308/data?-p cp?/data/3306/{my.cnf,mysql}?/data/3308/ sed?-i?'s#3306#3308#g'?/data/3308/{my.cnf,mysql} sed?-i?'s#server-id?=?1#server-id?=?8#g'?/data/3308/my.cnf chown?-R?mysql.mysql?/data/3308 chmod?700?/data/3308/mysql cd?/application/mysql-5.5.49/scripts/ ./mysql_install_db?--user=mysql?--basedir=/application/mysql?--datadir=/data/3308/data/ /data/3308/mysql?start echo?"/data/3308/mysql?start"?>>/etc/rc.local netstat?-tunpl?|grep?330 mysql?-S?/data/3308/mysql.sock mysqladmin?-uroot?password?'oldboy123'?-S?/data/3308/mysql.sock mysql?-uroot?-poldboy123?-S?/data/3308/mysql.sockMySQL多實例優化
清理無用的MySQL庫(3306)
mysql?-uroot?-poldboy123?-S?/data/3306/mysql.sock drop?database?test; show?databases;清理無用的MySQL用戶
select?user,host?from?mysql.user; drop?user?"root"@"::1"; drop?user?"?"@"db02";? drop?user?"root"@"db02"; drop?user?"?"@"localhost";故障:drop命令刪除不了用戶
可能是大寫及Linux主機名導致的,注意:刪除用戶盡量用drop命令,不要用delete命令
解決方法如下:
delete?from?mysql.user?where?user=''?and?host='S1';???? delete?from?mysql.user?where?user='root'?and?host='S1';刷新權限
刷新權限,使更改立馬生效
flush?privileges;轉載于:https://blog.51cto.com/chenfage/1931931
總結
以上是生活随笔為你收集整理的MySQL多实例的安装的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux下的打包与压缩
- 下一篇: linux cmake编译源码,linu