zoukankan      html  css  js  c++  java
  • ubuntu安装mysql多实例

    想要尝试mysql的读写分离,在云上安装完mysql之后突然想到一个问题:我本机是没有公网IP的。

    开始尝试在唯一一台云服务器上安装多个mysql实例。

    主要步骤:

    1.新建MySQL目录

    (1):新建实例目录: /data/mysql/mysql_3307

    (2):赋权:chown -R mysql.mysql  /data/mysql/mysql_3307

    (3):在apparmor中配置对目录文件的访问权限

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

    /data/mysql/mysql_3307/ r,

    /data/mysql/mysql_3307/** rwk,

     
    apparmor配置

     刷新: service apparmor restart

    2.复制多个MySQL配置文件

    mysql启动时会读取配置文件my.cnf,要配置多个实例需要复制多个my.cnf配置文件。在mysql5.7版本中

    /etc/mysql/目录下的my.cnf文件是个软链接,关联的是/etc/mysql/mysql.conf.d目录下的mysqld.cnf文件,配置信息全部在mysqld.cnf中,所以可以直接复制mysqld.cnf命名为mysqld_3307.cnf作为启动配置文件。

    修改mysqld_3307.cnf配置

     
    配置文件修改
     
    配置文件修改

    端口port: port=3307

    socket      socket=/data/mysql/mysql_3307/mysqld.sock

    pid-file    pid-file=/data/mysql/mysql_3307/mysqld.pid

    datadir      datadir=/data/mysql/mysql_3307

    log_error    log_error=/data/mysql/mysql_3307/error.log

    注释掉nice =0  #nice = 0

    注释掉bind-address方便从本地访问        #bind-address          = 127.0.0.1

    保存。

    3.初始化MySQL文件

    mysql_install_db --defaults-file=/etc/mysql/mysql.conf.d/mysqld_3307.cnf --basedir=/usr/ --datadir=/data/mysql/mysql_3307 --user=mysql

    执行完成后mysql文件会被初始化到datadir目录下

     
    实例文件

    (

        5.7版本初始化的时候相比5.6 会有一些不同,之前在初始化第三个实例的时候报错:

        2111:29:05[WARNING]mysql_install_db is deprecated. Please consider switching to mysqld --initialize

        可以看到mysql_install_db is deprecated,mysql_install_db被弃用。推荐使用的方法:

        mysqld --initialize 

        正确的初始方式如下:mysqld --initialize --user=mysql --basedir=/usr  --datadir=/data/mysql/mysql_3307

    )

    启动实例: mysqld_safe --defaults-file=/etc/mysql/mysql.conf.d/mysqld_3307.cnf --skip-grant-tables &

    先通过安全模式启动实例,跳过安全认证登录后修改root密码

    无密码登录:mysql -S /data/mysql/mysql_3307/mysqld.sock -P 3307

    修改密码:

    mysql> update user set authentication_string=password('******') where user='root'

    mysql> flush privileges;

    mysql> quit

    重新启动,然后通过root密码登录。

    关闭实例:

    mysqladmin -u root -p -S /data/mysql/mysql_3307/mysqld.sock shutdown

    启动实例:

    mysqld_safe --defaults-file=/etc/mysql/mysql.conf.d/mysqld_3307.cnf  &

    登录实例:

    mysql -S /data/mysql/mysql_3307/mysqld.sock -P 3307 -u root -p

    登录后执行命令的时候提示错误:ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this start

    解决办法,设置密码:set password="YOUR_PASSWORD"。

    至此单个实例安装完成,需要安装不同实例只需要复制多个mysqld.cnf配置文件,建多个目录按以上步骤操作。

    4.设置MySQL实例可以从本地navicate访问

    本地navicate连接
  • 相关阅读:
    Windows性能计数器应用
    Azure Oracle Linux VNC 配置
    Azure 配置管理系列 Oracle Linux (PART6)
    Azure 配置管理系列 Oracle Linux (PART5)
    Azure 配置管理系列 Oracle Linux (PART4)
    Azure 配置管理系列 Oracle Linux (PART3)
    Azure 配置管理系列 Oracle Linux (PART2)
    vagrant多节点配置
    docker基本操作
    LINUX开启允许对外访问的网络端口命令
  • 原文地址:https://www.cnblogs.com/wollow/p/10839785.html
Copyright © 2011-2022 走看看