通用二进制安装mysql
1、在官网下载mysql-5.6.32-linux-glibc2.5-x86_64.tar.gz
2、新创建用户
groupadd -r -g 306 mysql
useradd -g 306 -r -u 306 mysql
3、安装并初始化mysql
tar xvf mysql-5.6.32-linux-glibc2.5-x86_64.tar.gz -C /usr/local/
cd /usr/local/
ln -sv mysql-5.6.32-linux-glibc2.5-x86_64/ mysql
chown -R mysql.mysql mysql/*
初始化
yum install perl-Data-Dumper -y
mysqld --initializ --user=mysql --datadir=/usr/local/mysql/data --basedir=/usr/local/mysql
4、为mysql提供主配置文件
cd /usr/local/mysql
cp support-files/my-default.cnf /etc/my.cnf
vim /etc/my.cnf
5、为mysql提供sysv服务脚本
cp support-files/mysql.server /etc/rc.d/init.d/mysql
chmod +x /etc/rc.d/init.d/mysql
6、启动mysql
systemctl start mysql
7、将mysql的bin目录加入PATH环境变量,编辑/etc/profile
cd /etc/pprofile.d/
vim mysql.sh
source mysql.sh
8、进入MySQL数据库并设置密码
mysql -uroot
此时,用户名密码登录
多实例化安装
什么是多实例:
MySQL多实例安装就是在一台机器上开启多个不同的服务端口,运行多个服务进程,通过不同的socket监听不同的服务端口提供各自的服务
MySQL多实例的特点:
1)有效的利用服务资源,当单个服务器的资源有剩余时,可以充分利用剩余的资源提供更多的服务。
2)节约服务资源
3)资源互相抢占资源问题,当某个服务实例服务并发很高时或者开启慢查询时,会消耗更多的内存,cpu,磁盘I/O资源,导致服务器上的其他实例提供服务的质量下降
安装部署
1、下载二进制包
mysql-5.6.32-linux-glibc2.5-x86_64.tar.gz
2、解压并迁移
tar -xvf mysql-5.6.32-linux-glibc2.5-x86_64.tar.gz
mv mysql-5.6.32-linux-glibc2.5-x86_64 /usr/local/mysql/
3、创建mysql用户及组
groupadd -g 27 mysql
useadd -u 27 -g mysql mysql
id mysql
4、创建多实例数据目录
mkdir -p /data/mysql/{musql_3306,mysql_3307}
mkidr -p /data/mysql/mysql_3306/{data,log,tmp}
mkidr -p /data/mysql/mysql_3306/{data,log,tmp}
5、更改目录权限
chown -R mysql:mysql /data/mysql/
chown -R mysql:mysql /usr/local/mysql/
6、添加环境变量
vim /etc/profile
export PATH=$PATH:/usr/local/mysql/bin
source /etc/profile
7、复制my.cnf 到etc目录
cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf
8、修改my.cnf
[client]
port=3306
socket=/tmp/mysql.sock
[mysqld_multi]
mysqld = /usr/local/mysql /bin/mysqld_safe
mysqladmin = /usr/local/mysql /bin/mysqladmin
log = /data/mysql/mysqld_multi.log
[mysqld]
user=mysql
basedir = /usr/local/mysql
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
[mysqld3306]
mysqld=mysqld
mysqladmin=mysqladmin
datadir=/data/mysql/mysql_3306/data
port=3306
server_id=3306
socket=/tmp/mysql_3306.sock
log-output=file
slow_query_log = 1
long_query_time = 1
slow_query_log_file = /data/mysql/mysql_3306/log/slow.log
log-error = /data/mysql/mysql_3306/log/error.log
binlog_format = mixed
log-bin = /data/mysql/mysql_3306/log/mysql3306_bin
[mysqld3307]
mysqld=mysqld
mysqladmin=mysqladmin
datadir=/data/mysql/mysql_3307/data
port=3307
server_id=3307
socket=/tmp/mysql_3307.sock
log-output=file
slow_query_log = 1
long_query_time = 1
slow_query_log_file = /data/mysql/mysql_3307/log/slow.log
log-error = /data/mysql/mysql_3307/log/error.log
binlog_format = mixed
log-bin = /data/mysql/mysql_3307/log/mysql3307_bin
9、初始化数据库
/usr/local/mysql/scripts/mysql_install_db --basedir=/usr/local/mysql/ --datadir=/data/mysql/mysql_3306/data --defaults-file=/etc/my.cnf
/usr/local/mysql/scripts/mysql_install_db --basedir=/usr/local/mysql/ --datadir=/data/mysql/mysql_3307/data --defaults-file=/etc/my.cnf
10、设置启动文件
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
11、启动全部实例
/usr/local/mysql/bin/mysqld_multi start
mysqld_multi进行多实例管理
启动全部实例:/usr/local/mysql/bin/mysqld_multi start
查看全部实例状态:/usr/local/mysql/bin/mysqld_multi report
启动单个实例:/usr/local/mysql/bin/mysqld_multi start 3306
停止单个实例:/usr/local/mysql/bin/mysqld_multi stop 3306
查看单个实例状态:/usr/local/mysql/bin/mysqld_multi report 3306
12、查看全部进程
netstat -ntpl | grep mysql
13、修改密码
mysql的root用户初始密码是空,所以需要登录mysql进行修改密码,下面以3306为例:
mysql -S /tmp/mysql_3306.sock
set password for root@'localhost'=password('123456');
重新登陆
mysql -S /tmp/mysql_3306.sock -p 123