返回顶部

欢迎来到菜鸟大明儿哥的博客

我们一起交流学习,不断提升自我

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

 

posted @ 2020-03-03 16:42  菜鸟大明儿哥  阅读(112)  评论(0编辑  收藏  举报