想要尝试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连接

ubuntu安装mysql多实例的更多相关文章

  1. ubuntu安装mysql

    好记性不如烂笔头,记录一下,ubuntu安装mysql的指令. 安装MySQL: sudo apt-get install mysql-server sudo apt-get install mysq ...

  2. ubuntu安装mysql后不能远程访问的方法

    ubuntu安装mysql后不能远程访问的方法1.mysql>GRANT ALL PRIVILEGES ON *.* TO 'myuser'@'%' IDENTIFIED BY 'mypassw ...

  3. Ubuntu 安装 Mysql 5.6 数据库

    Ubuntu 安装 Mysql 5.6 数据库 1)下载: mysql-5.6.13-debian6.0-x86_64.deb http://dev.mysql.com/downloads/mirro ...

  4. Ubuntu安装mysql之后,编译找不到头文件

    解决Ubuntu安装mysql之后找不到mysql.h问题   安装: sudo apt-get install libmysqlclient-dev   编译: gcc test.c -o test ...

  5. Linux平台下源码安装mysql多实例数据库

    Linux平台下源码安装mysql多实例数据库[root@linux-node1 ~]# netstat -tlunp | grep 330tcp6 0 0 :::3306 :::* LISTEN 6 ...

  6. Linux Deploy Ubuntu安装MySQL

    一.在Android手机安装Linux 二.Ubuntu安装Mysql 建议在root用户上操作 sudo su 输入密码 (一)安装mysql 1. sudo apt-get install mys ...

  7. ubuntu安装mysql<服务器>

    服务器 阿里云服务器Ubuntu安装mysql 2014-08-22 21:52 |  coding云 |  7315次阅读 | 11条评论   这里首先吐槽一下阿里云,我作为公司的唯一懂服务器架设的 ...

  8. ubuntu安装mysql数据库方法

    ubuntu基于linux的免费开源桌面PC操作系统,十分契合英特尔的超极本定位,支持x86.64位和ppc架构.一个比较流行的Linux操作系统,不仅简单易用,而且和Windows相容性非常好.那么 ...

  9. ubuntu安装mysql并使用Navicat连接

    今天配置了一下自己的服务器,发现网上很多教程都有点老,而且不是很全.干脆就写一篇Ubuntu安装mysql,并用Navicat连接的全流程 一.安装mysql 1. sudo apt-get inst ...

随机推荐

  1. HBase运维和优化

    管理工具 HBase ShellHBase Shell是HBase组件提供的基于JRuby IRB的字符界面的交互式客户端程序,通过HBase Shell可以实现对HBase的绝大部分操作 通过hel ...

  2. iOS 开发常用的调试工具

    前言 最近博主临近毕业季,为了完美的写一篇毕业论文,真是:“锄禾日当午,汗滴禾下土”<—— 这句诗跟毕业我写毕业论文没任何一毛钱关系,我就是突然想吟湿了.不过博主作为网络工程专业的好青年,曾经的 ...

  3. HDU 5438 Ponds

    Ponds Time Limit: 1500/1000 MS (Java/Others)    Memory Limit: 131072/131072 K (Java/Others)Total Sub ...

  4. 类、对象(java基础知识六)

    1.Java约定俗成 java约定俗成 1,类名接口名 一个单词首字母大写,多个单词每个单词首字母都大写 2,方法名和变量名 一个单词全部小写,多个单词从第二个单词首字母大写 建议:如果能用英语尽量用 ...

  5. Xcode清楚缓存、清理多余证书路径

    Xcode清除缓存.清理多余证书 1.删除Xcode中多余的证书provisioning profile 手动删除: Xcode6 provisioning profile path: ~/Libra ...

  6. 如何快糙好猛的使用Shiqi.Yu老师的公开人脸检测库(附源码)

    前言 本次编写所用的库为于仕祺老师免费提供的人脸检测库.真心好用,识别率和识别速度完全不是Opencv自带的程序能够比拟的.将其配合Opencv的EigenFace算法,基本上可以形成一个小型的毕业设 ...

  7. 并不对劲的bzoj4650:loj2083:uoj219:p1117:[NOI2016]优秀的拆分

    题目大意 "优秀的拆分"指将一个字符串拆分成AABB的形式 十次询问,每次给出一个字符串S(\(|S|\leq3*10^4\)),求它的所有子串的优秀的拆分的方案数之和 题解 此题 ...

  8. [Selenium] Selenium私房菜(新手入门教程)

    http://wenku.baidu.com/link?url=JrHF9o0mKWcpEsE-wijcZaneBWgpmAJPRwGyWXd7RvqzJCLLrsrsv5lf9bPRmgKUa_v- ...

  9. 【SDOI2009】SuperGCD

    [题目链接] 点击打开链接 [算法] 1.关于求最大公约数的算法 若使用辗转相除法,那么显然会超时 不妨这样思考 : 要求gcd(a,b), 若a为偶数,b为偶数,则gcd(a,b) = 2 * gc ...

  10. ES6之拷贝对象

    function copyObject(orig) { var copy = Object.create(Object.getPrototypeOf(orig)); //创建一个新的原型对象 copy ...