转自:http://www.cnblogs.com/xuchenliang/p/6843990.html

1.MySQL多实例介绍

1.1.什么是MySQL多实例

MySQL多实例就是在一台机器上开启多个不同的服务端口(如:3306,3307),运行多个MySQL服务进程,通过不同的socket监听不同的服务端口来提供各自的服务:;

1.2.MySQL多实例的特点有以下几点

1:有效利用服务器资源,当单个服务器资源有剩余时,可以充分利用剩余的资源提供更多的服务。

2:节约服务器资源

3:资源互相抢占问题,当某个服务实例服务并发很高时或者开启慢查询时,会消耗更多的内存、CPU、磁盘IO资源,导致服务器上的其他实例提供服务的质量下降;

1.3.部署mysql多实例的两种方式

第一种是使用多个配置文件启动不同的进程来实现多实例,这种方式的优势逻辑简单,配置简单,缺点是管理起来不太方便;

第二种是通过官方自带的mysqld_multi使用单独的配置文件来实现多实例,这种方式定制每个实例的配置不太方面,优点是管理起来很方便,集中管理;

1.4.同一开发环境下安装两个数据库,必须处理以下问题

配置文件安装路径不能相同

数据库目录不能相同

启动脚本不能同名

端口不能相同

socket文件的生成路径不能相同

2.Mysql多实例安装部署

2.1.部署环境

Red Hat Enterprise Linux Server release 6.4

2.2.安装mysql软件版本

2.2.1.免编译二进制包

mysql-5.6.21-linux-glibc2.5-x86_64.tar.gz

2.3.解压和迁移

tar -xvf mysql-5.6.21-linux-glibc2.5-x86_64.tar.gz

mv mysql-5.6.21-linux-glibc2.5-x86_64 /usr/local/mysql

2.4.关闭iptables

临时关闭:service iptables stop

永久关闭:chkconfig iptables off

2.5.关闭selinux

vi /etc/sysconfig/selinux

将SELINUX修改为DISABLED,即SELINUX=DISABLED

2.6.创建mysql用户

groupadd -g 27 mysql

useradd -u 27 -g mysql mysql

id mysql

uid=501(mysql) gid=501(mysql) groups=501(mysql)

2.7.创建相关目录

mkdir -p /data/mysql/ {mysql_3306,mysql_3307}

mkdir /data/mysql/mysql_3306/ {data,log,tmp}

mkdir /data/mysql/mysql_3307/ {data,log,tmp}

2.8.更改目录权限

chown -R mysql:mysql /data/mysql/

chown -R mysql:mysql /usr/local/mysql/

2.9. 添加环境变量

echo 'export PATH=$PATH:/usr/local/mysql/bin' >>  /etc/profile

source /etc/profile

2.10.复制my.cnf文件到etc目录

cp /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf

2.11.修改my.cnf(在一个文件中修改即可)

[client]

port=3306

socket=/tmp/mysql.sock

[mysqld_multi]

mysqld = /usr/local/mysql /bin/mysqld_safe

mysqladmin = /usr/local/mysql /bin/mysqladmin

log = /data/mysql/mysqld_multi.log

[mysqld]

user=mysql

basedir = /usr/local/mysql

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES

[mysqld3306]

mysqld=mysqld

mysqladmin=mysqladmin

datadir=/data/mysql/mysql_3306/data

port=3306

server_id=3306

socket=/tmp/mysql_3306.sock

log-output=file

slow_query_log = 1

long_query_time = 1

slow_query_log_file = /data/mysql/mysql_3306/log/slow.log

log-error = /data/mysql/mysql_3306/log/error.log

binlog_format = mixed

log-bin = /data/mysql/mysql_3306/log/mysql3306_bin

[mysqld3307]

mysqld=mysqld

mysqladmin=mysqladmin

datadir=/data/mysql/mysql_3307/data

port=3307

server_id=3307

socket=/tmp/mysql_3307.sock

log-output=file

slow_query_log = 1

long_query_time = 1

slow_query_log_file = /data/mysql/mysql_3307/log/slow.log

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

binlog_format = mixed

log-bin = /data/mysql/mysql_3307/log/mysql3307_bin

2.12. 初始化数据库

2.12.1. 初始化3306数据库

/usr/local/mysql/scripts/mysql_install_db --basedir=/usr/local/mysql/ --datadir=/data/mysql/mysql_3306/data --defaults-file=/etc/my.cnf

2.12.2. 初始化3307数据库

/usr/local/mysql/scripts/mysql_install_db --basedir=/usr/local/mysql/ --datadir=/data/mysql/mysql_3307/data --defaults-file=/etc/my.cnf

2.12.3. 检查数据库是否初始化成功

出现两个”OK”

2.12.4. 查看数据库是否初始化成功(2)

查看3306数据库

[root@mysql ~]# cd /data/mysql/mysql_3306/data

[root@mysql data]# ls

auto.cnf  ibdata1  ib_logfile0  ib_logfile1  mysql  mysql.pid  performance_schema  test

查看3307数据库

[root@mysql ~]# cd /data/mysql/mysql_3307/data

[root@mysql data]# ls

auto.cnf  ibdata1  ib_logfile0  ib_logfile1  mysql  mysql.pid  performance_schema  test

2.13.设置启动文件

cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql

2.14.mysqld_multi进行多实例管理

启动全部实例:/usr/local/mysql/bin/mysqld_multi start

查看全部实例状态:/usr/local/mysql/bin/mysqld_multi report

启动单个实例:/usr/local/mysql/bin/mysqld_multi start 3306

停止单个实例:/usr/local/mysql/bin/mysqld_multi stop 3306

查看单个实例状态:/usr/local/mysql/bin/mysqld_multi report 3306

2.14.1.启动全部实例

[root@mysql ~]# /usr/local/mysql/bin/mysqld_multi start

[root@mysql ~]# /usr/local/mysql/bin/mysqld_multi report

Reporting MySQL servers

MySQL server from group: mysqld3306 is running

MySQL server from group: mysqld3307 is running

2.15.查看启动进程

2.16.修改密码

mysql的root用户初始密码是空,所以需要登录mysql进行修改密码,下面以3306为例:

mysql -S /tmp/mysql_3306.sock

set password for root@'localhost'=password('123456');

flush privileges;

下次登录:

[root@mysql ~]# mysql -S /tmp/mysql_3306.sock -p

Enter password:

2.17.新建用户及授权

一般新建数据库都需要新增一个用户,用于程序连接,这类用户只需要insert、update、delete、select权限。

新增一个用户,并授权如下:

grant select,delete,update,insert on *.* to admin@'192.168.0.%' identified by '123456';

flush privileges

2.18.外部软件登录数据库

2.19.测试成功

3.源码安装常见报错信息

1:安装mysql报错

checking for tgetent in -lncurses... no

checking for tgetent in -lcurses... no

checking for tgetent in -ltermcap... no

checking for tgetent in -ltinfo... no

checking for termcap functions library... configure: error: No curses/termcap library found

原因:

缺少ncurses安装包

解决方法:

yum list|grep ncurses

yum -y install ncurses-devel

yum install ncurses-devel

2:.../depcomp: line 571: exec: g++: not found

make[1]: *** [my_new.o] 错误 127

make[1]: Leaving directory `/home/justme/software/mysql-5.1.30/mysys'

make: *** [all-recursive] 错误 1

解决方法:

yum install gcc-c++

3:.../include/my_global.h:909: error: redeclaration of C++ built-in type `bool'

make[2]: *** [my_new.o] Error 1

make[2]: Leaving directory `/home/tools/mysql-5.0.22/mysys'

make[1]: *** [all-recursive] Error 1

make[1]: Leaving directory `/home/tools/mysql-5.0.22'

make: *** [all] Error 2

是因为gcc-c++是在configure之后安装的,此时只需重新configure后再编译make即可。

4:初始化数据库报错

报错现象:

root@mysql mysql-6.0.11-alpha]# scripts/mysql_install_db --basedir=/usr/local/mysql/ --user=mysql

Installing MySQL system tables...

ERROR: 1136  Column count doesn't match value count at row 1

150414  7:15:56 [ERROR] Aborting

150414  7:15:56 [Warning] Forcing shutdown of 1 plugins

150414  7:15:56 [Note] /usr/local/mysql//libexec/mysqld: Shutdown complete

Installation of system tables failed!  Examine the logs in

/var/lib/mysql for more information.

You can try to start the mysqld daemon with:

shell> /usr/local/mysql//libexec/mysqld --skip-grant &

and use the command line tool /usr/local/mysql//bin/mysql

to connect to the mysql database and look at the grant tables:

shell> /usr/local/mysql//bin/mysql -u root mysql

mysql> show tables

Try 'mysqld --help' if you have problems with paths.  Using --log

gives you a log in /var/lib/mysql that may be helpful.

The latest information about MySQL is available on the web at

http://www.mysql.com/.  Please consult the MySQL manual section

'Problems running mysql_install_db', and the manual section that

describes problems on your OS.  Another information source are the

MySQL email archives available at http://lists.mysql.com/.

Please check all of the above before mailing us!  And remember, if

you do mail us, you MUST use the /usr/local/mysql//scripts/mysqlbug script!

原因:

原有安装的mysql信息没有删除干净

解决方法:

删除/var/lib/mysql目录

linux mysql多实例启动不了_linux下mysql多实例安装(转)相关推荐

  1. linux mysql启动不起_linux下mysql服务无法启动

    具体解决方法流程如下 1.删除mysql的所有pid进程 2.启动mysql .如果启动正常了就ok,如果不正常就看mysql的日志文件 3.查看日志文件,看看报错信息 根据报错信息来对应处理mysq ...

  2. linux中mysql自动备份操作文档_linux下mysql自动备份和自动删除文件功能实现

    1 , mysql无密码登录shell>vi ~/.my.cnf [client] host=localhost user=root password=123456 2,备份脚本#!/bin/b ...

  3. 查看linux mysql 账户权限设置_Linux下mysql新建账号及权限设置各种方式总结

    来自:http://justcoding.iteye.com/blog/1941116 1.权限赋予 说明:mysql部署在服务器A上,内网上主机B通过客户端工具连接服务器A以进行数据库操作,需要服务 ...

  4. linux上mysql卸数_Linux下MySQL卸载和安装图文教程

    Linux下MySQL卸载和安装图文教程 发布时间:2020-09-02 08:43:17 来源:脚本之家 阅读:59 作者:伊宇紫 第一次写博客,做了两年的开发,工作之余给自己找点有意义的事做,分享 ...

  5. linux下mysql乱码_linux下mysql中文乱码

    登录mysql执行 mysql> show variables like 'character%'; 发现编码有些不是utf-8 修改/etc/mysql/my.cnf,网上说的是/etc/my ...

  6. mysql服务的启动和停止 net stop mysql net start mysql

    第一招.mysql服务的启动和停止 net stop mysql net start mysql 第二招.登陆mysql 语法如下: mysql -u用户名-p用户密码 键入命令mysql -uroo ...

  7. 修改配置文件导致 MySQL 服务无法启动和停止,并且 MySQL 服务操作按钮变为灰色

    修改配置文件导致 MySQL 服务无法启动和停止,并且 MySQL 服务操作按钮变为灰色 目录 修改配置文件导致 MySQL 服务无法启动和停止,并且 MySQL 服务操作按钮变为灰色 一.问题描述 ...

  8. 查询电脑上mysql的密码忘记了怎么办_windows下mysql忘记root密码的解决方法 -电脑资料...

    方法一: 1.在DOS窗口下输入net stop mysql5 或 net stop mysql 2.开一个DOS窗口,这个需要切换到mysql的bin目录, 一般在bin目录里面创建一个批处理1.b ...

  9. linux下mysql授权_linux下mysql命令(用户授权、数据导入导出)

    1,linux下启动mysql的命令: 复制代码 代码示例: mysqladmin start /ect/init.d/mysql start (前面为mysql的安装路径) 2,linux下重启my ...

最新文章

  1. 雅克比(Jacobi)迭代法求解线性方程组
  2. 计算机视觉与图像处理、模式识别、机器学习学科之间的关系
  3. 后台开发真的不需要看《tcpip详解》吗
  4. Elasticsearch的功能,Elasticsearch的适用场景,Elasticsearch的特点(来自学习资料)
  5. matlab中结束脚本运行_疫情当前,生活向前 | MATLAB 一直 Online 等你
  6. STM32F103构建固件库模板(PS固件库文件树介绍)
  7. .Net Core Razor 预编译,动态编译,混合编译
  8. MessageQueue Message Looper Handler的解释说明
  9. 北京市(朝阳区)(西城区)(海定区)正则表达式(代码保存)
  10. win10局域网加入工作组计算机,Win10专业版加入局域网工作组的技巧
  11. 【C学习】全通纸笔王网上阅卷系统 APMS_Setup.exe IP修改程序 - 附C/C#/Delphi源码
  12. 老毛桃PE工具安装32位win7系统ISO镜
  13. Android广播静态注册失效
  14. 重测序群体遗传进化分析之进化树构建
  15. 图案设计灵感怎么写_妆容设计灵感怎么写
  16. pyinstaller打包exe速记
  17. 火车票订票管理系统c语言,基于c 的火车票订票管理系统的设计与实现.docx
  18. Python程序设计总结 目录
  19. Anemometer适应新版pt-query-digest需要的调整
  20. js通过IP地址获取所在城市

热门文章

  1. python绘制混淆矩阵_使用python matplotlib绘制混淆矩阵
  2. windows 7(32/64位)GHO安装指南(U盘引导篇)~
  3. 儿童节,送你一批值得关注的公众号!
  4. python关键词排名_Python百度seo排名查询,关键词排名查询优化版
  5. 《Linux/UNIX OpenLDAP实战指南》——1.8 自动化运维解决方案
  6. 解决Animate.css在谷歌浏览器没有动画效果
  7. java.lang.UnsatisfiedLinkError: dlopen failed: /data/app/***.so: has text relocations
  8. 【Web前端HTML5CSS3】04-CSS语法与选择器
  9. 微信小程序访问阿里云flask网页
  10. [官方]江民就传闻从卡巴斯基网站秘获病毒资料的声明