2.linux安装mysql 多实例安装

基于上篇,linux安装mysql 单实例安装的基础,拓展尝试动手试试多实例安装

单实例安装传送门:https://blog.csdn.net/qq_20409407/article/details/87599464

要求:

    在一台linux上,现在要求装两个mysql 一个3307,3308

废话不多说,开始安装

  新建 /etc/my.cnf 配置如下

[mysqld]
sql_mode = "STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION,NO_ZERO_DATE,NO_ZERO_IN_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER"

[mysqld_multi]
mysqld = /usr/local/mysql/bin/mysqld_safe
mysqladmin = /usr/local/mysql/bin/mysqladmin
log = /var/log/mysqld_multi.log

[mysqld1] 
server-id = 11
socket = /tmp/mysql.sock1
port = 3307
datadir = /data1
user = mysql
performance_schema = off
innodb_buffer_pool_size = 32M
skip_name_resolve = 1
log_error = error.log
pid-file = /data1/mysql.pid1
[mysqld2]
server-id = 12
socket = /tmp/mysql.sock2
port = 3308
datadir = /data2
user = mysql
performance_schema = off
innodb_buffer_pool_size = 32M
skip_name_resolve = 1
log_error = error.log
pid-file = /data2/mysql.pid2

创建2个数据目录

mkdir /data1
mkdir /data2

chown mysql.mysql /data{1..2}

初始化mysql

#mysqld 在mysql的bin下,没有配置环境变量的,需要在命令前面加 ./mysql --initialize ..... 才能执行
mysqld --initialize --user=mysql --datadir=/data1
mysqld --initialize --user=mysql --datadir=/data2

 

#配置开机启动

cp /usr/local/mysql/support-files/mysqld_multi.server /etc/init.d/mysqld_multid
chkconfig mysqld_multid on

注:开机启动好像有问题

解决方案:

安装多实例,暂时跳过开机自启动的问题,等你手动可以通过 mysqld_multi start 启动后,可以返回头看看开启启动需要修改的参数

首先看一下Linux启动的知识点,顺序如下。
1 加载内核
2 执行init程序
3 /etc/rc.d/rc.sysinit # 由init执行的第一个脚本
4 /etc/rc.d/rc $RUNLEVEL # $RUNLEVEL为缺省的运行模式,linux 共有7种运行模式,后续会介绍。
5 /etc/rc.d/rc.local # 相应级别服务启动之后、在执行该文件(其实也可以把需要执行的命令写到该文件中)
6 /sbin/mingetty # 等待用户登录

在  /etc/rc.d/rc.local 文件中加入这几行代码

MYSQL_HOME=/usr/local/mysql
PATH=$MYSQL_HOME/bin:$PATH
source /root/.bash_profile
mysqld_multi start

也许你很纳闷,reboot后还是不行,别急,是由于rc.local 这个文件的权限问题

#给 rc.local 文件可执行赋权限 
chmod 770 /etc/rc.d/rc.local

再reboot试试,然后通过

ps -ef|grep mysqld

或查看端口
netstat -nlpt|grep 330

2.linux安装mysql 多实例安装_第1张图片

#查看状态

mysqld_multi report
#没有perl环境的,需要安装perl环境
yum -y install perl perl-devel

#再运行,发现已经有实例了
mysqld_multi report

#启动

mysqld_multi start

启动,分别修改密码,允许远程连接

 mysql -u root -S /tmp/mysql.sock1 -p -P3307
 mysql -u root -S /tmp/mysql.sock2 -p -P3308
#注意,密码初始化的时候,自己记录一下,不知道怎么记录的,先看下单实例安装

允许远程连接

set password = 'root1234%';
GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root1234%';
flush privileges;  

 

你可能感兴趣的:(大数据学习,mysql)