zoukankan      html  css  js  c++  java
  • MySQL5.7开多实例指导

    一、mysql多实例原理

      在一台服务器上,mysql服务开启多个不同的端口,运行多个服务进程。他们通过不同的 socket来监听不同的端口互不干扰地运行。

     

    二、开发环境

       ubuntu16.04.5LTS/i5/8G/500G/64位/mysql5.7.23/php7/apache2

     

    三、配置步骤

    1、创建mysql实例数据存储目录

    cd /var/lib/
    
    mkdir 3308_mysql  
    
    chown -R mysql:mysql 3308_mysql    //修改权限

     

    2、创建配置文件

    (我的环境中,mysql配置主要是/etc/mysql/my.cnf,其中又相应的加载conf.d和mysql.conf.d文件夹中的文件。我们直接copy,然后修改部分重要内容即可)

    cd /etc/mysql/
    
    cp -r conf.d conf3308.d
    
    cp my.cnf my3308.cnf
    
    cp -r mysql.conf.d mysql3308.conf.d
    
    vi my3308.cnf

    修改内容如下

    !includedir /etc/mysql/conf3308.d/
    !includedir /etc/mysql/mysql3308.conf.d/

    cd mysql3308.conf.d
    
    vi mysqld.cnf

    修改内容如下:

    [mysqld_safe]
    socket        = /var/lib/3308_mysql/mysqldsafe.sock
    #nice        = 0

    [mysqld]
    #
    # * Basic Settings
    #
    user        = mysql
    pid-file    = /var/lib/3308_mysql/mysqld.pid
    socket        = /var/lib/3308_mysql/mysqld.sock
    port        = 3308
    basedir        = /usr
    datadir        = /var/lib/3308_mysql

    log_error = /var/lib/3308_mysql/error.log

    3、添加读写权限apparmor

    vi /etc/apparmor.d/usr.sbin.mysqld

    在下面添加:

    /var/lib/3308_mysql/ r,
    /var/lib/3308_mysql/** rwk,

    让apparmor重新加载配置文件

    service apparmor reload

     

    4、启动实例

    这里得提醒大家的是,mysql_install_db初始化的方法已经不能在5.7版本使用了,亲测了N种方法都失败了,请使用以下命令。

    mysqld --initialize-insecure --datadir=/var/lib/3308_mysql --user=mysql  //初始化,其中--initialize-insecure 为创建时不带密码
    
    mysqld_safe --defaults-file=/etc/mysql/my3308.cnf  //启动
    
    执行 ctrl + z //让实例后台运行

    此时我们可以看数据库运行情况

    netstat -anp | grep mysql

    会看到

    成功!监听3308端口

     

    5、设置实例密码

    mysql -uroot -p -S /var/lib/3308_mysql/mysqldsafe.sock -P 3308
    
    Enter password:   //直接enter,因为我们初始化时--initialize-insecure
    
    mysql> use mysql
    
    mysql> UPDATE user SET authentication_string= password ('123456') WHERE User='root';
    
    mysql> exit

    //重新启动

    mysqladmin -uroot -S /var/lib/3308_mysql/mysqldsafe.sock shutdown  
    
    mysqld_safe --defaults-file=/etc/mysql/my3308.cnf
    
    ctrl + z
    
    mysql -uroot -p -S /var/lib/3308_mysql/mysqldsafe.sock -P 3308
    
    Enter password:   //此时需要输入刚才设置的密码


    四、建库测试

    我们在3308中创建了库db3308,我们去3306库中并没发现此库

    反过来我们在3306的数据库操作对3308也没有影响。

    我们发现,各个库独立运行,互不干扰。

    五、开更多实例

    重复配置步骤即可

  • 相关阅读:
    laravel faker,种子文件,数据工厂,数据填充
    phpstorm2020 修改快捷注释时的斜杠的位置
    rbac 4表 常规设计
    laravel 模型迁移文件常规字段设计
    php artisan 常用基础命令一
    MySQL查询(下)
    mysql的增删改查(列子)
    python-面向对象的一些简单操作
    PHP版本新特新历史
    日志文件分析常用总结
  • 原文地址:https://www.cnblogs.com/bushuwei/p/9635889.html
Copyright © 2011-2022 走看看