zoukankan      html  css  js  c++  java
  • Mysql运维管理-MySQL多实例常见配置方案3

    多实例配置文件部署方案

    1.通过配置多个配置文件及多个启动程序来实现多实例的方案

    [root@mysql ~]# tree -L 2 /data/
    /data
    ├── 3306
    │   ├── data
    │   ├── my.cnf  3306实例的配置文件
    │   └── mysql       3306实例的启动文件
    └── 3307
    ├── data
    ├── my.cnf  3307实例的配置文件
    └── mysql   3307实例的启动文件

    多实例启动文件启动mysql服务实质

    mysql_safe --defaults-file=/data/3306/my.cnf 2>&1 > /dev/null &
    mysql_safe --defaults-file=/data/3307/my.cnf 2>&1 > /dev/null &

    多实例启动文件的平滑停止mysql服务实质

    mysqladmin -u root -p123456 -S /data/3306/mysql.sock shutdown
    mysqladmin -u root -p123456 -S /data/3307/mysql.sock shutdown

    2. 授权用户和组管理整个多实例目录/data

    [root@mysql ~]# chown -R mysql.mysql /data
    [root@mysql ~]# find /data -name mysql
    /data/3306/mysql
    /data/3307/mysql

    3 授权mysql多实例服务所有启动文件mysql可执行

    [root@mysql ~]# find /data -type f -name "mysql"|xargs ls -l
    -rw-r--r--. 1 mysql mysql 1604 1月  12 17:06 /data/3306/mysql
    -rw-r--r--. 1 mysql mysql 1604 1月  12 17:06 /data/3307/mysql
    [root@mysql ~]# find /data -type f -name "mysql"|xargs chmod +x
    [root@mysql ~]# find /data -type f -name "mysql"|xargs ls -l
    -rwxr-xr-x. 1 mysql mysql 1604 1月  12 17:06 /data/3306/mysql
    -rwxr-xr-x. 1 mysql mysql 1604 1月  12 17:06 /data/3307/mysql

    4 配置MySQL命令全局使用路径

    前面cmake安装mysql的时候已经配过了,这里就不配了。配完全局变量使用mysql命令就能找到了。

    [root@mysql ~]# tail -1 /etc/profile
    export PATH=/usr/local/mysql/bin:$PATH

    5 初始化MySQL多实例的数据库文件

    (1)初始化命令

    mysql5.1.X初始化命令

    mysql_install_db --basedir=/usr/local/mysql/ --datadir=/data/3307/data/ --user=mysql
    mysql_install_db --basedir=/usr/local/mysql/ --datadir=/data/3307/data/ --user=mysql

    mysql5.5.32初始化命令

    [root@mysql ~]# cd /home/zbf/mysql-5.5.32/scripts/

    要在scripts下执行,不在mysql bin下。注意要在当前目录下执行加 ./。

    ./mysql_install_db --basedir=/usr/local/mysql/ --datadir=/data/3306/data/ --user=mysql
    ./mysql_install_db --basedir=/usr/local/mysql/ --datadir=/data/3307/data/ --user=mysql

    (2)为什么要初始化数据库?

    a. 初始化的主要目的就是创建基础的数据库文件,例如生成mysql库表。

    b. 初始化后可以查看对应的实例数据库目录,可以看到如下文件。

    6 启动mysql服务

    /data/3306/mysql start
    /data/3307/mysql start

    7 MySQL故障排错多实例数据库

    如果mysql没有起来排查方法如下

    (1)如果发现没有显示MySQL的端口,请等待几秒mysql服务启动会有点慢。

    (2)如果还是不行,请查看错误日志,错误日志路径在my.cnf配置文件路径下面。
    grep log-error /data/3306/mysql_zbf3306.err|tail -1

    (3)细看所有执行命令返回的输出,不要忽略关键的输出结果。

    (4)查看系统的/var/log/messages。

    (5)如果是关联服务,要同时查看相关服务的LOG。

    8 Mysql多实例登录

    Mysql安装完成后,默认情况下管理员账号root是无密码的。登录不同的mysql数据库需要指定不同库的sock路径。如果是远程的话就指定IP地址。

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

    9 MySQL安全配置

    为root增加密码

    mysqladmin -u root -S /data/3306/mysql.sock password '123456'
    mysqladmin -u root -S /data/3307/mysql.sock password '123456'

    ###设置完数据路密码登录数据库的方法

    [root@mysql 3306]# mysql -uroot -p123456 -S /data/3306/mysql.sock
    [root@mysql 3306]# mysql -uroot -p123456 -S /data/3307/mysql.sock

    为mysql多实例启动脚本修改执行权限,只允许root用户有执行权限

    [root@mysql ~]# find /data -type f -name "mysql" -exec ls -l {} ;
    -rwxr-xr-x 1 mysql mysql 1252 1月  15 02:18 /data/3306/mysql
    -rwxr-xr-x 1 mysql mysql 1252 1月  15 04:45 /data/3307/mysql
    [root@mysql ~]# find /data -type f -name "mysql" -exec chmod 700 {} ;
    [root@mysql ~]# find /data -type f -name "mysql" -exec chown 700 {} ;
    [root@mysql ~]# find /data -type f -name "mysql" -exec ls -l {} ;
    -rwx------ 1 root root 1252 1月  15 02:18 /data/3306/mysql
    -rwx------ 1 root root 1252 1月  15 04:45 /data/3307/mysql
  • 相关阅读:
    python学习之列表
    python学习之数据类型
    开启python学习之路
    软件工程中的需求分析包括的主要内容
    论需求分析和数据库设计的重要性
    Android的ListView分页功能(上滑加载更多)
    设置ListView显示到最后一行
    一对一Socket简单聊天的实现
    Spring Cloud学习笔记-004
    Spring Cloud学习笔记-003
  • 原文地址:https://www.cnblogs.com/zywu-king/p/8556691.html
Copyright © 2011-2022 走看看