centos编译安装mysql 5.6及安装多个mysql实例详解

--1.为mysql新建组和用户 # useradd -M -s /sbin/nologin mysql --2.安装需要的库,编译器 # yum install ncurses-devel openssl-devel cmake -y --3.解压 # tar zxvf mysql-5.6.35.tar.gz# cd mysql-5.6.35 --4.编译安装 # cmake -D

--1.为mysql新建组和用户

  1. useradd -M -s /sbin/nologin mysql

--2.安装需要的库,编译器

  1. yum install ncurses-devel openssl-devel cmake -y

--3.解压

  1. tar zxvf mysql-5.6.35.tar.gz
  2. cd mysql-5.6.35

--4.编译安装

  1. cmake \ -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \ -DMYSQL_DATADIR=/usr/local/mysql/data \ -DSYSCONFDIR=/etc \ -DWITH_MYISAM_STORAGE_ENGINE=1 \ -DWITH_INNOBASE_STORAGE_ENGINE=1 \ -DWITH_MEMORY_STORAGE_ENGINE=1 \ -DWITH_READLINE=1 \ -DMYSQL_TCP_PORT=3306 \ -DENABLED_LOCAL_INFILE=1 \ -DWITH_PARTITION_STORAGE_ENGINE=1 \ -DEXTRA_CHARSETS=all \ -DDEFAULT_CHARSET=utf8 \ -DDEFAULT_COLLATION=utf8_general_ci \ -DMYSQL_USER=mysql \ -DWITH_DEBUG=0 \ -DWITH_SSL=system
  2. make
  3. make install

--5.拷贝模版,作为配置文件

  1. cp support-files/my-default.cnf /etc/my.cnf

--6.设置mysql权限

  1. chown -R mysql.mysql /usr/local/mysql/

--7.初始化mysql数据库

  1. /usr/local/mysql/scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data --user=mysql
  2. chown -R root /usr/local/mysql/
  3. chown -R mysql /usr/local/mysql/data/

--8.设置mysql开机自启动

  1. cp support-files/mysql.server /etc/init.d/mysqld
  2. chmod +x /etc/init.d/mysqld
  3. chkconfig mysqld on

--9.测试并运行mysql

#service mysqld start

--10.修改mysql管理员密码

#/usr/local/mysql/bin/mysqladmin -u root password '要设置的密码'

--11.使用用户登录mysql

  1. /usr/local/mysql/bin/mysql -u root -p

--12.加入环境变量

  1. echo 'PATH=/usr/local/mysql/bin/:$PATH' >>/etc/profile
  2. source /etc/profile

            CentOS 6.5最小化编译安装mysql 5.5.35配置多实例

1、关闭防火墙

1234567 [root@mysql ~]# service iptables stop iptables: Setting chains to policy ACCEPT: filter [ OK ] iptables: Flushing firewall rules: [ OK ] iptables: Unloading modules: [ OK ] [root@mysql ~]# chkconfig iptables off [root@mysql ~]# chkconfig iptables --list iptables 0:off 1:off 2:off 3:off 4:off 5:off 6:off

2、关闭selinux

12 [root@mysql ~]# setenforce 0 [root@mysql ~]# vim /etc/sysconfig/selinux

修改下面这一行;

SELINUX=disabled 12 [root@mysql ~]# getenforce Permissive

3、安装mysql依赖包及编译工具;

1234 [root@mysql ~]# yum install libaio-devel -y [root@mysql ~]# yum install -y ncurses-devel [root@mysql ~]# yum install -y gcc gcc-c++ [root@mysql ~]# yum install -y cmake

4、安装前准备;

4.1、安装路径:

1 [root@mysql ~]# mkdir /usr/local/mysql

4.2、数据库路径:

1 [root@mysql ~]# mkdir /data/mysql -p

4.3、创建用户和用户组

12 [root@mysql ~]# groupadd mysql [root@mysql ~]# useradd -r -g mysql -s /bin/false mysql

4.4、赋予数据存放目录权限

1 [root@mysql ~]# chown mysql:mysql -R /data/mysql

5、编译安装mysql 5.5.35

1234567 [root@mysql ~]# yum install -y lrzsz root@mysql ~]# mkdir /package [root@mysql ~]# cd /package/ [root@mysql package]# tar xf mysql-5.5.32.tar.gz [root@mysql package]# cd mysql-5.5.32 [root@mysql mysql-5.5.32]# cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_UNIX_ADDR=/data/mysql/mysql.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS:STRING=utf8,gbk -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DENABLED_LOCAL_INFILE=1 -DMYSQL_DATADIR=/data/mysql/ -DMYSQL_USER=mysql -DMYSQL_TCP_PORT=3306 [root@mysql mysql-5.5.32]# make && make install

6、创建多实例数据库文件存放位置;

12345678 [root@mysql ~]# mkdir -p /data/{3306,3307}/data [root@mysql ~]# tree /data /data |-- 3306 | -- data -- 3307 `-- data 4 directories, 0 files

7、修改配置文件(my.cnf)如下行,分别放入3306、3307目录当中;

123456789 [root@mysql 3306]# vim my.cnf [client] port = 3306 socket = /data/3306/mysql.sock [mysqld] port = 3306 socket = /data/3306/mysql.sock datadir = /data/3306 server-id = 3306

8、初始化数据库;

注意:初始化数据库时需要指定不同的数据目录

123 [root@mysql mysql-5.5.32]# cd /usr/local/mysql/ [root@mysql mysql]# scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/data/3306 [root@mysql mysql]# scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/data/3307

9、启动多实例,启动脚本可以加入到开机自启动文件中。

12 [root@mysql mysql]# /usr/local/mysql/bin/mysqld_safe --defaults-file=/data/3306/my.cnf 2>&1 >/dev/null &
[root@mysql mysql]# /usr/local/mysql/bin/mysqld_safe --defaults-file=/data/3307/my.cnf 2>&1 >/dev/null &

9.1、查看端口;

12345678 [root@mysql mysql]# netstat -tunlp Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:3307 0.0.0.0: LISTEN 11621/mysqld
tcp 0 0 0.0.0.0:22 0.0.0.0:
LISTEN 1266/sshd
tcp 0 0 0.0.0.0:3306 0.0.0.0: LISTEN 11338/mysqld
tcp 0 0 :::22 :::
LISTEN 1266/sshd
udp 0 0 0.0.0.0:68 0.0.0.0:* 969/dhclient

10、登录多实例数据库

12 [root@mysql mysql]# /usr/local/mysql/bin/mysql -u root -p -P 3306 -S /data/3306/mysql.sock [root@mysql mysql]# /usr/local/mysql/bin/mysql -u root -p -P 3307 -S /data/3307/mysql.sock

11、关闭mysql多实例方式

12 [root@mysql mysql]# /usr/local/mysql/bin/mysqladmin -u root -p -P 3306 -S /data/3306/mysql.sock shutdown
[root@mysql mysql]# /usr/local/mysql/bin/mysqladmin -u root -p -P 3307 -S /data/3307/mysql.sock shutdown cat ​/etc/my.cnf [mysqld1] datadir=/data/mysql socket=/tmp/mysql.sock user=mysql symbolic-links=0 skip-name-resolve server-id=1221 max_connections = 2000 binlog-ignore-db=mysql binlog-ignore-db=test binlog-ignore-db=information_schema binlog-ignore-db=performance_schema innodb_buffer_pool_size = 2G innodb_additional_mem_pool=16M innodb_log_file_size=256M innodb_flush_log_at_trx_commit=2 character_set_server=utf8 collation_server = utf8_general_ci replicate_ignore_db = mysql slave-skip-errors=all relay_log=/data/mysql/ [mysqld2] port=3307 server-id=1222 log-error=/tmp/mysqld2.log datadir=/data/mysql_live socket=/tmp/mysql2.sock user=mysql symbolic-links=0 skip-name-resolve character_set_server=utf8 collation_server = utf8_general_ci max-connections=500 default-storage-engine=INNODB innodb_file_per_table log-bin=mysql-bin relay-log-info-repository=TABLE master-info-repository=TABLE expire_logs_days=10 binlog_format=ROW transaction-isolation=READ-COMMITTED binlog-ignore-db=mysql binlog-ignore-db=test binlog-ignore-db=information_schema binlog-ignore-db=performance_schema slow_query_log=TRUE slow_query_log_file=/tmp/mysqld_slow_query2.log long_query_time=3 replicate_ignore_db = mysql slave-skip-errors=all [mysqld3] server-id=1223 port=3308 log-error=/tmp/mysqld3.log datadir=/data/mysql socket=/tmp/mysql3.sock user=mysql symbolic-links=0 skip-name-resolve character_set_server=utf8 collation_server = utf8_general_ci max-connections=500 default-storage-engine=INNODB innodb_file_per_table ​log-bin=mysql-bin relay-log-info-repository=TABLE master-info-repository=TABLE expire_logs_days=10 binlog_format=ROW transaction-isolation=READ-COMMITTED binlog-ignore-db=mysql binlog-ignore-db=test binlog-ignore-db=information_schema binlog-ignore-db=performance_schema slow_query_log=TRUE slow_query_log_file=/tmp/mysqld_slow_query3.log long_query_time=3 replicate_ignore_db = mysql slave-skip-errors=all [mysqld_safe] log-error=/var/log/mysqld.log pid-file=/data/mysql/mysqld.pid