Linux---一台主机部署多版本mysql服务和mysql实例

1.背景

服务器上有mysql5.5.38,要求升级为mysql5.6

2.方法

为了降低影响范围,可持续作业,决定在现有基础上部署mysql5.6,即部署多版本mysql

3.注意事项

1.与现有mysql安装目录不能相同
2.与现有mysql数据库文件目录不能相同
3.与现有msql的启动端口不能相同(默认3306)
4.与现有mysql的服务的socket不能相同,即my.cnf里面的socket的设置不能一样
5.与现有mysql的服务的pid文件不能相同,即my.cnf里面的pid-filed设置不能一样

4.步骤

1.创建用户组和用户&创建目录

创建用户组和用户

groupadd mysql

useradd -g mysql mysql

创建目录

mkdir /home/mysql/base

mkdit /home/mysql/data

chrom -R mysql:mysql base

chrom -R mysql:mysql data

2.下载源码包&解压

下载地址:https://dev.mysql.com/downloa…
选项Select Operating System:linux-generic

wget
https://dev.mysql.com/get/Dow…

tar -zxvf mysql-5.6.37-linux-glibc2.12-x86_64.tar.gz

cp -r mysql-5.6.37-linux-glibc2.12-x86_64 /home/mysql/base //复制解压后的包

cd /home/mysql/base

mv mysql-5.6.37-linux-glibc2.12-x86_64 mysql-5.6.37 //重命名文件夹

3.安装

cd /home/mysql/base/mysql-5.6.37/scripts

mysql_install_db –basedir=/home/mysql/base/mysql-5.6.37 –datadir=/home/mysql/data/5.6.37/st01 –user=mysql

安装后可查看数据库目录有如下文件,创建另一个端口的mysql服务可直接复制这个文件夹

cd /home/mysql/data/5.6.37/st01

ll -ah

total 110600

-rw-rw—-. 1 mysql mysql 12582912 Sep 21 23:19 ibdata1

-rw-rw—-. 1 mysql mysql 50331648 Sep 21 23:19 ib_logfile0

-rw-rw—-. 1 mysql mysql 50331648 Sep 21 23:19 ib_logfile1

drwx——. 2 mysql mysql 4096 Sep 21 23:19 mysql

drwx——. 2 mysql mysql 4096 Sep 21 23:19 performance_schema

drwx——. 2 mysql mysql 6 Sep 21 23:19 test

4.配置文件设置

复制一份配置文件

cd /home/mysql/data/mysql-5.6.37/st01

cp /home/mysql/base/5.6.16/support-files/my-default.cnf ./my.cnf

修改配置文件

vi ./my.cnf

port = 9701

socket = /home/mysql/data/5.6.37/st01/mysql.sock

basedir = /home/mysql/base/5.6.37

datadir = /home/mysql/data/5.6.37/st01

……

[mysqld_safe]

log-error = /home/mysql/data/5.6.37/st01/mysqld.log

pid-file = /home/mysql/data/5.6.37/st01/mysql.pid

5.服务管理

1.启动服务

/home/mysql/base/5.6.37/bin/mysqld_safe –defaults-file=./my.cnf –user=mysql&

2.查看服务
ps查看mysql进程

ps -ef | grep mysql

也可以查看log信息看启动情况

cat /home/mysql/data/5.6.37/st01/mysqld.log

3.关闭服务

/home/mysql/base/5.6.37/bin/mysqladmin -P 9701 -S /home/mysql/data/5.6.37/st01/mysql.sock -u root -p shutdown

暴力关闭(有数据丢失风险)

ps -ef | grep 端口号 //命令结果第二列为进程号

kill -9 进程号 //强制杀掉进程

6.用户设置

6.1 本地访问
安装好后,mysql默认只有root用户(此用户是mysql用户,而非Linux用户),并且没有密码

1.给默认的root用户设置密码(设置后只允许localhost本地访问)

/home/mysql/base/5.6.37/bin/mysqladmin -P 9701 -S /home/mysql/data/5.6.37/st01/mysql.sock -u root password ‘password123’

2.给默认的root用户修改密码

/home/mysql/base/5.6.37/bin/mysqladmin -P 9701 -S /home/mysql/data/5.6.37/st01/mysql.sock -u root -p password ‘password1234’

6.2 远程访问

1.进入mysql

/home/mysql/base/5.6.37/bin/mysql -P 9701 -S /home/mysql/data/5.6.37/st01/mysql.sock -u root -p

按提示输入密码

2.1 方法一:grant 赋予用户root所有权限
grant 权限1,权限2,…权限n on 数据库名称.表名称 to 用户名@用户地址 identified by ‘连接口令’;

mysql>grant all privileges on *.* to ‘root’@’%’ identified by ‘password’ with grant option;

2.2 方法二:root对应的host成%,表示可以任意IP地址登录

mysql>update user set host = ‘%’ where user = ‘root’;

3.刷新配置后退出

mysql>flush privileges;

mysql>exit;

    原文作者:April
    原文地址: https://segmentfault.com/a/1190000012877573
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞