• 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连接
  • 相关阅读:
    使用springamqp发送消息及同步接收消息
    对未登陆的用户进行处理的页面
    查找某些字符是否在另一个字符串里出现的高效算法
    正则表达式
    华中地区高校第七届ACM程序设计大赛——递增序列【2012年5月27日】
    HDOJ2021 ( 发工资咯:) ) 【水题】
    循环冗余校验(CRC)【C语言 位运算】
    HDOJ2028 ( Lowest Common Multiple Plus ) 【水题,lcm】
    HDOJ2015 ( 偶数求和 ) 【水题】
    HDOJ2027 ( 统计元音 ) 【水题】
  • 原文地址:https://www.cnblogs.com/wollow/p/10839785.html
Copyright © 2020-2023  润新知