环境:centos 6.7 x86_64
mysql version:mysql-5.6.33-linux-glibc2.5-x86_64.tar.gz
下载地址:https://dev.mysql.com/downloads/mysql/5.6.html#downloads
步骤:
1.解压包,创建mysql管理用户和数据目录
[root@db1 ~]#tar -xf mysql-5.6.33-linux-glibc2.5-x86_64.tar.gz #解压mysql压缩包 [root@db1 ~]#mv mysql-5.6.33-linux-glibc2.5-x86_64 /usr/local/mysql #移动mysql目录到/usr/local/mysql [root@db1 ~]#useradd -s /sbin/nologin -M mysql #创建mysql用户用于管理mysql进程不创建家目录,不允许tty登录 [root@db1 ~]#mkdir /data/{3306,3307}/data -pv #创建每个实例文件保存mysql数据的位置 [root@db1 ~]#chown -R mysql.mysql /data #将文件夹权限赋予mysql用户,不然不能启动和写入数据2.初始化3306、3307实例数据库
[root@db1 ~]# /usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/data/3306/data/ #初始化3306数据库 [root@db1 ~]# /usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/data/3307/data/ #初始化3307数据库3.分别创建3306和3307的my.cnf配置文件
[root@db1 ~]# 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 = /usr/local/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 thread_stack = 192K tmp_table_size = 2M max_heap_table_size = 2M long_query_time = 1 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 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_3306.err pid-file=/data/3306/mysqld.pid [root@db1 ~]#cp /data/3306/my.cnf /data/3307/my.cnf [root@db1 ~]#sed -i 's#3306#3307#g' /data/3307/my.cnf4.分别创建mysqld启动脚本
[root@db1 ~]# vim /data/3306/mysqld #!/bin/bash port=3306 mysql_user="root" mysql_pwd="123456" CmdPath="/usr/local/mysql/bin" mysql_sock="/data/${port}/mysql.sock" #startup function function_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 function function_stop_mysql() { if [ ! -e "$mysql_sock" ];then printf "MySQL is stopped...\n" exit else printf "Stoping MySQL...\n" ${CmdPath}/mysqladmin -u ${mysql_user} -p${mysql_pwd} -S /data/${port}/mysql.sock shutdown fi } #restart function function_restart_mysql() { printf "Restarting MySQL...\n" function_stop_mysql sleep 2 function_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也copy一份并且修改端口路径 [root@db1 ~]#cp /data/3306/mysqld /data/3307/mysqld [root@db1 ~]#sed -i 's#3306#3307#g' /data/3307/mysqld #赋予执行权限 [root@db1 ~]#chmod +x /data/3306/mysqld [root@db1 ~]#chmod +x /data/3307/mysqld5.启动mysql
[root@db1 ~]# /data/3306/mysqld start [root@db1 ~]# /data/3306/mysqld start [root@db1 ~]# netstat -tlunp|grep mysql tcp 0 0 :::3306 :::* LISTEN 13995/mysqld tcp 0 0 :::3307 :::* LISTEN 13263/mysqld6.更改密码
[root@db1 ~]# mysql -S /data/3306/mysql.sock mysql> update mysql.user set password=password('123456') where user=root; [root@db1 ~]# mysql -S /data/3307/mysql.sock mysql> update mysql.user set password=password('123456') where user=root;7.测试脚本启动和停止
[root@db1 ~]# /data/3307/mysqld stop
[root@db1 ~]# /data/3306/mysqld stop
评论区