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

最新文章

  1. docker
  2. Mac Pro 编译安装 Redis-3.2.3
  3. WindowsFormsHost使用问题
  4. How to pronounce symbols on keyboard
  5. 10个最好的 JavaScript 动画库和开发框架
  6. UESTC 1015 Lweb and pepper --前,后缀最值
  7. android布局详解
  8. android怎么换背景图片
  9. dedecms 忘记后台密码
  10. 学习记录 java泛型资料
  11. tty -s && mesg n
  12. 数列平方根的和 java
  13. Trail: JDBC(TM) Database Access(1)
  14. Jdk5.0中出现的新特性
  15. Android GridView(九宫图)
  16. Ext.Net 使用总结之查询条件中的起始日期
  17. PRINCE2的好处是什么?使用PRINCE2受益非浅
  18. PyCharm 2017 免费 破解 注册 激活 教程(附 License Server 地址)(Python 编辑器 IDE 推荐)
  19. videojs双击全屏幕观看,videojs动态加载视频
  20. Python实现百度贴吧自动顶贴机

热门文章

  1. Java语言基础二
  2. 2013级新生程序设计基础竞赛-正式赛 F 异或最大值 解题报告
  3. position属性中的绝对定位和相对定位
  4. Allure生成测试报告
  5. 148D
  6. VMware Workstation安装centos 6.5详细步骤
  7. Android webkit 事件传递流程通道分析
  8. 13_android实现多线程下载_界面实现
  9. View Programming Guide for iOS ---- iOS 视图编程指南(三)---Windows
  10. poj2385【基础DP】