简介
起因是因为在一次mysql的数据库中导入导出中的把导入库的密码也重置了,想确认是否是因为导入导出的造成的,特此周围也没有合适的Mysql环境,特从单机搭建多实例mysql,特此记录下。
环境
VM虚拟机
系统版本:CentOS Linux release 7.3.1611 (Core)
数据库版本:mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz
部署
环境准备
- 一台Linux服务器,配置根据业务流量来调整
- MySQL安装包可去MySQL官网下载
安装Mysql
解压压缩包并更名为mysql
1 2
| tar xf mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz mv mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz /usr/local/mysql
|
配置my.cnf文件
在mysql文件夹下面创建data/{3306,3307} 文件夹(保存数据库数据,也可以放在其他的位置)
在mysql文件夹下面创建tmp/{3306,3307} 文件夹
创建my.cnf配置文件,(单机只有一个数据库不用配置,单机多数据库必须创建, 并配置相应的内容,多实例需要多个my.cnf文件:my3306.cnf my3307.cnf)
其实就是MySQL组件公用,根据不通的数据目录来区分不通的实例,不同的数据目录就是根据my.cnf来区分的,sock在连接不同的实例的时候需要指定
my3306.cnf
1 2 3 4 5 6 7 8
| [client] socket = /usr/local/mysql/mysql3306.sock
[mysqld] basedir= /usr/local/mysql datadir = /usr/local/mysql/data/3306/ port = 3306 socket = /usr/local/mysql/mysql3306.sock
|
my3307.cnf
1 2 3 4 5 6 7 8
| [client] socket = /usr/local/mysql/mysql3307.sock
[mysqld] basedir= /usr/local/mysql datadir = /usr/local/mysql/data/3307/ port = 3307 socket = /usr/local/mysql/mysql3307.sock
|
更改MySQL的用户和权限
1 2 3 4
| groupadd mysql useradd mysql -g mysql chown -R mysql:mysql /usr/local/mysql/ chmod -R 755 /usr/local/mysql/
|
安装依赖包
1
| yum -y install make gcc-c++ cmake bison-devel ncurses-devellibaio libaio-devel
|
数据库初始化
两种方式初始化:\
一种直接初始化,使用默认的配置文件,不用指定
1
| /usr/local/mysql/bin/mysqld --initialize --user=mysql --datadir=/usr/local/mysql/data --basedir=/usr/local/mysql
|
最后一行可以得到初始化之后的密码 类似:
[Note] A temporary password is generated for root@localhost: <gxU*CxtK2k%
另外一种指定配置文件初始化:
不同实例初始化更改指向的my3306.cnf地址即可
1 2 3
| /usr/local/mysql/bin/mysqld --defaults-file=/usr/local/mysql/my3306.cnf --initialize --user=mysql /usr/local/mysql/bin/mysql_ssl_rsa_setup --defaults-file=/usr/local/mysql/my3306.cnf
|
多机的情况下必须主要my.cnf文件的位置:
5.7版本寻找my.cnf的文件的顺序是
/etc/my.cnf /etc/mysql/my.cnf /usr/local/mysql/etc/my.cnf ~/.my.cnf
所以,要想使用到当前数据库自己文件夹下的的my.cnf文件,就必须在前面的三个文件的地址上面没有配置文件才可以
启动数据库
前台启动:
1 2
| /usr/local/mysql/bin/mysqld_safe --defaults-file=/usr/local/mysql/my3306.cnf --user=mysql /usr/local/mysql/bin/mysqld_safe --defaults-file=/usr/local/mysql/my3307.cnf --user=mysql
|
服务启动:
1
| /usr/local/mysql/support-files/mysql.server start
|
修改数据库密码
登录更改密码:
第一个数据库可以直接使用进入\
1
| /usr/local/mysql/bin/mysql -u root -p
|
第二个数据库必须使用进入
1 2
| /usr/local/mysql/bin/mysql --socket=/usr/local/mysql/mysql3306.sock --port==3306 -u root -p /usr/local/mysql/bin/mysql --socket=/usr/local/mysql/mysql3307.sock --port==3306 -u root -p
|
使用初始化的时候得到的密码 <gxU*CxtK2k%
进入后直接修改密码
1 2 3 4 5 6 7
| mysql>alter user 'root'@'localhost' identified by '123456'; mysql>use mysql; msyql>update user set user.Host='%' where user.User='root'; mysql>flush privileges; mysql>quit
|
创建连接(可选)
mysql命令
1 2 3
| ln -s /usr/local/mysql/bin/mysql /usr/bin
|
service mysql 命令
1
| ln -s /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
|
本文主要借鉴下文
版权声明:本文为CSDN博主「梦回绝鸢」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/u013317181/article/details/77943722