03 :mysql模型 和 mysql多实例安装

MySQL 简单知识
--------------------------------------------------------------------------------------------------------------

一、mysql是C/S模型结构,即:client (客户端)+ server(服务器) 

二、应用程序如何连接到mysql:

1、TCP/IP 方式连接数据库
mysql -uadmin -p123 -h 10.0.0.51 -P 3306

可以证明:
(1)数据库是好的
(2)网络连接是没问题的
(3)用户是没问题

2、SOCKET 方式连接数据库
mysql -uroot -p123456 -S /application/mysql/tmp/mysql.sock

思考:
mysql -uroot -p123456 使用的是什么方式登录?????

其实是使用的SOCKET 方式连接的数据库,只不过这里默认是把-S隐藏了。

细心的你一定发现了前面我们编译安装的时候,编译参数里面指定了sockt文件

路径/application/mysql-5.6.34/tmp/mysql.sock,因为编译指定了socket,所以这里默认使用的是编译的路径。

三、 多实例安装mysql

       就是在一台服务器上面,启动多个mysql,互相是独立运行的。


规划:
1、启动多次mysqld_safe
2、准备多个my.cnf 分别通过mysqld_safe --defaults-file=
3、多个端口3307 、3308、3309
4、初始化多套数据
5、在配置文件里分别定义socket、log_error、datadir、server_id、port

配置多实例:
创建必要目录
[root@mysql181 ~]# mkdir -p /data/330{7..9}/data

创建配置文件:
[root@mysql181 ~]#  cat /data/3307/my.cnf /data/3308/my.cnf /data/3309/my.cnf
[mysqld]
basedir=/application/mysql
datadir=/data/3307/data
socket=/data/3307/mysql.sock
server_id=3307
port=3307
log_error=/data/3307/mysql.log
log_bin=/data/3307/mysql-bin
binlog_format=row
[client]
socket=/data/3307/mysql.sock

[mysqld]
basedir=/application/mysql
datadir=/data/3308/data
socket=/data/3308/mysql.sock
server_id=3308
port=3308
log_error=/data/3308/mysql.log
log_bin=/data/3308/mysql-bin
binlog_format=row
[client]
socket=/data/3308/mysql.sock


[mysqld]
basedir=/application/mysql
datadir=/data/3309/data
socket=/data/3309/mysql.sock
server_id=3309
port=3309
log_error=/data/3309/mysql.log
log_bin=/data/3309/mysql-bin
binlog_format=row
[client]
socket=/data/3309/mysql.sock
[root@db01 data]#


初始化数据:

[root@mysql181 ~]# /application/mysql/scripts/mysql_install_db --user=mysql --basedir=/application/mysql --datadir=/data/3307/data/
[root@mysql181 ~]# /application/mysql/scripts/mysql_install_db --user=mysql --basedir=/application/mysql --datadir=/data/3308/data/
[root@mysql181 ~]# /application/mysql/scripts/mysql_install_db --user=mysql --basedir=/application/mysql --datadir=/data/3309/data/

修改目录权限:
[root@db01 3307]# touch /data/330{7..9}/mysql.log
[root@db01 3307]# chown -R mysql.mysql /data/330*

启动多实例:

[root@mysql181 ~]# mysqld_safe --defaults-file=/data/3307/my.cnf &
[root@mysql181 ~]# mysqld_safe --defaults-file=/data/3308/my.cnf &
[root@mysql181 ~]# mysqld_safe --defaults-file=/data/3309/my.cnf &

查看端口是否启动:

分别登陆3307-3309:

[root@mysql181 ~]# mysql -S /data/3307/mysql.sock

这里需要使用socket方式连接数据库:指定sock文件位置

关闭数据库的方法:

[root@mysql181 ~]# mysqladmin -S /data/3307/mysql.sock shutdown

因为多实例我们还没有启动脚本,其实我们可以根据启动和关闭的这两条命令,自己写一个启动脚本。

到此mysql多实例安装成功!

原文地址:https://www.cnblogs.com/jim-xu/p/11610078.html