MySQL 5.6单机安装
一、单实例安装
上传mysql5.6安装包
1.卸载系统自带的MySQL
使用yum删除系统自带的mysql
yum -y remove mysql mysql-server
删除原始配置文件
rm -rf /etc/my.cnf
2.相关目录介绍
mysql安装包目录(mysqlbase):mysql的相关文件存放目录,我们的mysql的tar包解压后的存放目录
/usr/local/mysql
mysql数据目录:mysql数据文件存放的目录
/home/mysql3306/mysql3306
mysql日志目录:mysql日志文件存放的目录
/home/mysql3306/logs
3.安装MySQL
关于防火墙的问题,实验环境中可以关闭iptables和selinux,在生产环境中,建议咨询相关运维人员后,进行合适的操作。
(1)安装相关依赖包
大部分情况下生产环境在系统初始化的过程中已安装大部分依赖包。
yum -y groupinstall "Development tools"
yum -y install ncurses ncurses-devel openssl-devel bison gcc gcc-c++ make
(2)解压MySQL安装tar包
tar -xvf mysql-5.6.25-linux-glibc2.5-x86_64.tar.gz
(3)复制相关目录(复制解压后的mysql到mysqlbase目录)
cp -rf mysql-5.6.25-linux-glibc2.5-x86_64 /usr/local/mysql
(4)创建MySQL用户
useradd mysql
(5)创建mysql数据目录:不支持多路径
mkdir -p /home/mysql3306/mysql3306
(6)创建mysql日志目录
mkdir -p /home/mysql3306/logs
(7)修改相关目录权限(前后一定要mysql,否则初始化可能会报 拒绝访问)
chown mysql:mysql -R /home/mysql3306
chown mysql:mysql -R /usr/local/mysql
(8)配置文件
cp my3306.cnf /etc/
(9)初始化mysql
这个过程实现了mysql相关系统表结构的初始化,日志初始化。需要指定安装目录、数据目录、配置文件目录、用户
/usr/local/mysql/scripts/mysql_install_db --basedir=/usr/local/mysql/ --datadir=/home/mysql3306/mysql3306 --defaults-file=/etc/my3306.cnf --user=mysql
(10)启动MySQL
初始化完成后,需要启动MySQL程序,需要指定配置文件位置,在root用户下启动需要指定mysql用户,需要使用&让其后台运行,因为MySQL是单进程多线程数据库,所以启动后会有一个进程。
注:启动中有问题 查看err错误日志寻找原因。
/usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my3306.cnf --user=mysql &
(11)进入MySQL
初始化完成后默认没有密码。
/usr/local/mysql/bin/mysql -S /tmp/mysql3306.sock
4.安装完成后,简单的初始化权限。
安装完后没有详细的权限设置,我们需要手动配置一些简单的权限。
(1)查看现有用户
select user,host,password from mysql.user;
(2)设置root用户密码
update mysql.user set password=password('root') where user='root';
(3)删除所有IP、用户名为空的访问
delete from mysql.user where host='::1';
delete from mysql.user where user='';
flush privileges;
命令本质上的作用是将当前user和privilige表中的用户信息/权限设置从mysql库(MySQL数据库的内置库)中提取到内存里。MySQL用户数据和权限有修改后,希望在"不重启MySQL服务"的情况下直接生效,那么就需要执行这个命令。通常是在修改ROOT帐号的设置后,怕重启后无法再登录进来,那么直接flush之后就可以看权限设置是否生效。而不必冒太大风险。
(4)设置MySQL的环境变量,不使用绝对路径
vi /etc/profile
export PATH=$PATH:/usr/local/mysql/bin
(5)设置MySQL开机启动
在/etc/rc.local里面添加启动命令,就可以实现MySQL开机启动了
/usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my3306.cnf --user=mysql &
MySQL免密码登录
如果mysql密码忘记 可以开启
在配置文件中加入
[mysqld]
skip-grant-tables
重启数据库,可以直接进入mysql
二、多实例安装
意义:在mysql压力不大或服务器处理能力过剩的情况下充分利用服务器资源
原理:通过在不同的端口启动不同的mysqld服务来实现
部署多实例的两种方式
(1)通过mysqld_multi来实现mysql多实例的管理
(2)通过不同的配置文件来启动不同的mysql实例
1.使用mysqld_multi来启动MySQL多实例
(1)安装相关依赖包
大部分情况下生产环境在系统初始化的过程中已安装大部分依赖包。
yum -y groupinstall "Development tools"
yum -y install ncurses ncurses-devel openssl-devel bison gcc gcc-c++ make
(2)解压MySQL安装tar包
tar -xvf mysql-5.6.25-linux-glibc2.5-x86_64.tar.gz
(3)复制相关目录(复制解压后的mysql到mysqlbase目录)
cp -rf mysql-5.6.25-linux-glibc2.5-x86_64 /usr/local/mysql
(4)创建MySQL用户
useradd mysql
(5)创建mysql数据目录:不支持多路径
mkdir -p /home/mysql3306/mysql3306
mkdir -p /home/mysql3307/mysql3307
(6)创建mysql日志目录
mkdir -p /home/mysql3306/logs
mkdir -p /home/mysql3307/logs
(7)修改相关目录权限(前后一定要mysql,否则初始化可能会报 拒绝访问)
chown mysql:mysql -R /home/mysql3306
chown mysql:mysql -R /home/mysql3307
chown mysql:mysql -R /usr/local/mysql
(8)配置文件
修改配置文件,需要把多实例配置都写在配置文件中,然后启动过程中会自动查询对应组的相关配置
Mysql_multi在查询配置文件的过程中,会进行查找[mysqld3306]和[mysqld3307],此为固定格式,3306和3307为启动过程中的group号
[client]
#port = 3306
#socket = /tmp/mysql.sock
#default-character-set=utf8
[mysql]
#default-character-set=utf8
[mysqld3306]
port = 3306
socket = /tmp/mysql3306.sock
basedir = /usr/local/mysql
datadir = /home/mysql3306/mysql3306
slow_query_log_file = /home/mysql3306/logs/slow.log
log-error = /home/mysql3306/logs/error.log
log-bin = /home/mysql3306/mysql3306/mysql-bin
binlog_format=row
[mysqld3307]
port = 3307
socket = /tmp/mysql3307.sock
basedir = /usr/local/mysql
datadir = /home/mysql3307/mysql3307
slow_query_log_file = /home/mysql3307/logs/slow.log
log-error = /home/mysql3307/logs/error.log
log-bin = /home/mysql3307/mysql3307/mysql-bin
binlog_format=row
[mysqld_multi]
mysqld=/usr/local/mysql/bin/mysqld_safe
mysqladmin=/usr/local/mysql/bin/mysqladmin
配置文件复制到/etc下面
(9)初始化mysql
这个过程实现了mysql相关系统表结构的初始化,日志初始化。需要指定安装目录、数据目录、配置文件目录、用户
/usr/local/mysql/scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/home/mysql3306/mysql3306 -defaults-file=/etc/mymu.cnf --user=mysql
/usr/local/mysql/scripts/mysql_install_db --basedir=/usr/local/mysql --datadir=/home/mysql3307/mysql3307 -defaults-file=/etc/mymu.cnf --user=mysql
(10)启动MySQL
初始化完成后,需要启动MySQL程序,需要指定配置文件位置,在root用户下启动需要指定mysql用户,需要使用&让其后台运行,因为MySQL是单进程多线程数据库,所以启动后会有一个进程。
注:启动中有问题 查看err错误日志寻找原因。
/usr/local/mysql/bin/mysqld_multi --defaults-file=/etc/mymu.cnf start 3306
/usr/local/mysql/bin/mysqld_multi --defaults-file=/etc/mymu.cnf start 3307
查看MySQL是否启动成功
ps -ef|grep mysql
(11)进入MySQL
初始化完成后默认没有密码。
/usr/local/mysql/bin/mysql -S /tmp/mysql3306.sock
mysqld_multi的使用
#启动所有的mysql实例
./mysqld_multi --defaults-file=/etc/mymu.cnf start
#启动特定端口的mysql实例
./mysqld_multi --defaults-file=/etc/mymu.cnf start 3306
#查看已经启动的mysql实例
./mysqld_multi --defaults-file=/etc/mymu.cnf report
2.使用多配置文件启动MySQL多实例
多配置文件启动MySQL多实例,就是使用多个单独的配置文件,然后使用mysqld_safe启动
配置文件
cp my3306.cnf /etc/my3306.cnf
cp my3307.cnf /etc/my3307.cnf
启动MySQL
/usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my3306.cnf --user=mysql &
/usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my3307.cnf --user=mysql &
进入MySQL
/usr/local/mysql/bin/mysql -S /tmp/mysql3306.sock
/usr/local/mysql/bin/mysql -S /tmp/mysql3307.sock