简介
起因是因为在一次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 | 12
 
 | tar xf mysql-5.7.24-linux-glibc2.12-x86_64.tar.gzmv 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
| 12
 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
| 12
 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的用户和权限
| 12
 3
 4
 
 | groupadd mysqluseradd 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地址即可
| 12
 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文件,就必须在前面的三个文件的地址上面没有配置文件才可以
启动数据库
前台启动:
| 12
 
 | /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
 | 
    第二个数据库必须使用进入
| 12
 
 | /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%
进入后直接修改密码
| 12
 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命令
| 12
 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