【Linux】多实例安装

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Francis123580/article/details/83239234

前言

有时候我们需要在单机安装启动多个mysql,这里个人不建议
因为并不好安装,过程中遇到的各种问题会耽误很多时间
另外,mysql的不同版本,linux的不同版本也会带来各种问题

搭建过程

1. 准备工作

安装libaio:sudo apt-get install libaio-dev
解压tar:sudo tar -xvf mysql-.......tar.gz
授权、重命名:sudo chmod -R 777 mysql-...tar.gzmv mysql-... mysql


2. 创建mysql工作目录

创建目录:mkdir -p /data/mysqldata/{3307/{data,tmp,binlog,innodb_ts,innodb_log},backup,scripts}
创建my.cnf:vim /data/mysqldata/3307/my.cnfwq
创建mysqld.pid:vim /data/mysqldata/3307/mysqld.pidwq
创建mysqld.log:vim /data/mysqldata/3307/mysqld.logwq
授权:sudo chmod -R 777 /data/mysqldata
my.cnf单独授权:sudo chmod 644 /data/mysqldata/3307/my.cnf


3. 创建mysql用户

创建mysql用户组:sudo groupadd mysql
创建mysql用户并添加到mysql用户组:sudo useradd -r -g mysql mysql
将mysql目录访问权限为mysql用户:sudo chown mysql mysql
改变mysql目录的用户组为mysql组:chgrp -R mysql mysql


4. 修改my.cnf配置

[client]
port = 3307
socket = /data/mysqldata/3307/mysql.sock

[mysqld]
port = 3307
socket = /data/mysqldata/3307/mysql.sock
bind-address = 0.0.0.0    
character_set_server=utf8
init_connect='SET NAMES utf8'
basedir=/data/mysql/3307    
datadir=/data/mysqldata/3307/data     
log-error=/data/mysqldata/3307/mysqld.log
pid-file=/data/mysqldata/3307/mysqld.pid
lower_case_table_names = 1
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
max_connections=5000
default-time_zone = '+8:00'

mysql8 配置参考:http://blog.chinaunix.net/xmlrpc.php?r=blog/article&uid=26446098&id=5785740


5. 初始化数据库

指定配置文件进行初始化:/data/mysql/3307/bin/mysqld --initialize --user=mysql --basedir=/data/mysql/3307 --datadir=/data/mysqldata/3307/data --lc_messages_dir=/opt/mysql/3307/share --lc_messages=en_US

保存临时密码:mysql8会在初始化过程中显示,mysql7在mysqld.log文件中


6. 启动数据库

指定配置文件启动:/data/mysql/3307/bin/mysqld_safe --defaults-file=/data/mysqldata/3307/my.cnf --user=mysql &


7. 连接数据库

直接连接:/data/mysql/3307/bin/mysql -uroot -p
软连接:/data/mysql/3307/bin/mysql -h 127.0.0.1 -uroot -p,如果报sock错误采用这种


8. 设置数据库

#修改密码
set password=password('新密码');
flush privileges;
UPDATE `mysql`.`user` SET `Host` = '%',  `User` = 'root'  WHERE (`Host` = 'localhost') AND (`User` = 'root');

#建立远程用户
grant all privileges on *.* to '新用户名'@'%' identified by '新密码';
flush privileges;

如果使用mysql8,设置密码、授权、建立远程用户见下文 [问题集锦]

小结

多实例安装mysql都是采用解压缩方式进行安装,同时初始化、启动、连接都要使用不同自定义的配置文件,访问连接使用不同的端口

 
 

[ 问题集锦 ]

ubuntu16.04 配置文件问题:https://www.cnblogs.com/2016024291-/p/9045548.html
mysql8 授权问题:https://www.2cto.com/database/201806/751840.html
mysql8 创建远程账户问题:https://www.2cto.com/database/201806/751840.html
mysql8 修改root密码问题:https://blog.csdn.net/yi247630676/article/details/80352655
mysql my.cnf被忽略问题:https://blog.csdn.net/yumushui/article/details/49124699
mysql world-writable 问题:https://www.jb51.net/article/99027.htm
mysql /tmp/mysql.sock '(2) 问题:https://blog.csdn.net/hjf161105/article/details/78850658
mysql 找不到mysqld.pid 问题:https://blog.csdn.net/u010865811/article/details/79870749
mysql mysqld_safe process exits 问题:https://blog.csdn.net/xiaoqiu_cr/article/details/80906955
mysql Couldn’t find MySQL manager 问题:https://blog.csdn.net/u012599988/article/details/44239325
mysql Different lower_case_table_names 问题:https://blog.csdn.net/vkingnew/article/details/80613043
mysql - 1820 - reset your password 问题:https://blog.csdn.net/brighter_xiao/article/details/51556532
mysql - 1045 - Access denied 问题:https://blog.csdn.net/lisongjia123/article/details/57418989

猜你喜欢

转载自blog.csdn.net/Francis123580/article/details/83239234