• 启动多个mysql实例


    如果使用./support-files/mysql.server 文件启动,则默认读取/etc/my.cnf 配置文件,这种方式有时候启动不了。

    会提示报错 :The server quit without updating PID file。所以建议在CentOS 7 以上版本使用systemctl管理mysql。

    所以我们使用启动命令mysqld_safe启动,多个实例只是重复下面的过程,更换目录和端口即可,当然也有一个mysql软件启动多个实例的方法。

    解压mysql二进制包

    useradd -r -s /sbin/nologin mysql
    tar
    xvf mysql-5.6.44-linux-glibc2.12-x86_64.tar.gz -C /usr/local/mysql
    chown mysql.mysql -R /usr/local/mysql

    初始化数据库

    该过程必须到安装目录以相对路径去执行初始化命令。

    yum -y install autoconf libaio libaio-devel
    cd /usr/local/mysql && scripts/mysql_install_db --user=mysql --datadir=/usr/local/mysql/data
    mkdir /usr/local/mysql/run
    chown mysql.mysql -R /usr/local/mysql

    创建配置文件

    初始化完成后,默认会在 ./mysql/ 目录下创建 my.cnf 的文件

    -rw-r--r--  1 root  root     492 5月  19 12:55 my.cnf

    清空该文件,写入如下配置 vim ./my.cnf,可以根据自己需求修改配置
    其中[client]区域是mysql客户端的配置,二进制包默认读取 /etc/my.cnf (在编译时习惯指定该位置)

    [client]
    port = 3306
    socket = /usr/local/mysql/run/mysql.sock
    
    [mysql]
    default_character_set = utf8
    
    [mysqld]
    basedir = /usr/local/mysql
    datadir = /usr/local/mysql/data
    log-error = /usr/local/mysql/data/error.log
    pid-file = /usr/local/mysql/run/mysql.pid
    socket = /usr/local/mysql/run/mysql.sock
    port = 3306
    user = mysql
    bind-address = 0.0.0.0
    sql_mode = NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
    default-storage-engine = INNODB
    lower_case_table_names = 1
    collation-server = utf8_general_ci
    character-set-server = utf8
    wait_timeout = 1200
    interactive_timeout = 1200

    启动数据库

    首先说明一点,如果安装目录不是/usr/local/mysql,则启动时可能要在mysql目录下启动才会成功,否则会启动失败。

    /usr/local/mysql/bin/mysqld_safe --defaults-file=/usr/local/mysql/my.cnf

    补充命令

    因为启动多个mysql,所以我们指定了PID文件和套接字文件的位置,所以登录时要指定套接字或者ip+端口方式登录

    /usr/local/mysql/bin/mysql -S /usr/local/mysql/run/mysql.sock -uroot -p
    /usr/local/mysql/bin/mysql -h 127.0.0.1 -P 3306 -uroot -p

    关闭数据库,可以使用kill 直接将其杀死(守护进程和mysql进程都要杀死),但不推荐这种方式,建议使用mysqladmin命令

    /usr/local/mysql/bin/mysqladmin -S /usr/local/mysql/run/mysql.sock  -uroot -p shutdown

    查看mysql状态

    /usr/local/mysql/bin/mysqladmin -S /usr/local/mysql/run/mysql.sock  -uroot -p ping

     创建systenctl脚本

    # /etc/systemd/system/mysqld.service
    [Unit]
    Description=MySQL database server
    After=syslog.target
    After=network.target
    [Service]
    User=mysql
    Group=mysql
    ExecStart=/usr/local/mysql/bin/mysqld_safe 
      --defaults-file=--defaults-file=/usr/local/mysql/my.cnf TimeoutSec=300 [Install] WantedBy=multi-user.target


    作者:Outsrkem
    出处:https://www.cnblogs.com/outsrkem/
    本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

  • 相关阅读:
    springboot+mybatis集成多数据源MySQL/Oracle/SqlServer
    向Spring容器中注册组件的方法汇总小结
    使用spring initialization创建SpringBoot项目
    mybatis-generator 的坑我都走了一遍
    初识Jsp,JavaBean,Servlet以及一个简单mvc模式的登录界面
    【Linux】用户只显示$问题
    【Linux】Ubuntu创建用户、删除用户、设置用户密码,root和普通用户切换
    【linux】ubuntu安装ssh
    【整理】【JS】map的基本操作
    【整理】【JS】数组定义、添加、删除、替换、遍历基本操作
  • 原文地址:https://www.cnblogs.com/outsrkem/p/10889008.html
Copyright © 2020-2023  润新知