分享好友 系统运维首页 频道列表

Ubuntu 下 MySQL 多实例配置

Linux系统  2017-02-05 18:530

项目需求测试MySQL的并发性能,故而需要启动多个实例,即在一台机器上启动多个MySQL服务。只是一个简单需求,也折腾了好几天,本文做一个记录,也希望能帮助更多有此需求的人,节约时间和精力。

本文主要从以下几个方面展开:

  • 方法简介
  • 实验环境
  • MySQL安装
  • MySQL启动多实例
  • MySQL初始化密码并登陆
  • MySQL停止某端口服务

MySQL官方说明文档地址(https://dev.mysql.com/doc/refman/5.7/en/multiple-servers.html)

方法简介

MySQL启动多个实例实际上需要做的是设置(启动/监听)多个不同的端口、不同的socket文件、pid文件及数据目录,为了排错方便,还需要加入log功能,即不同的log文件。

具体实现主要有以下两种方式:

(1) 使用mysqld_multi命令

只需一个配置文件,不同的配置由[mysqldN],其中N为标识号,来识别。具体实现可参见官网,本文不做详述。

(2) 使用mysqld_safe命令

需要多个不同的配置文件,差别在于章首所述,是本文要具体介绍的方法。

实验环境

  • Ubuntu16.04
  • Mysql5.7.17

MySQL安装

原本在ubuntu中安装非常方便,使用 apt-get install mysql-server 即可。但是在实际操作中还是遇到一些小麻烦,所以也稍作说明。

先介绍一下使用 apt-get 命令安装后的文件位置:

主要配置文件:/etc/mysql/my.cnf,这是一个global文件,我们经常需要修改的在/etc/mysql/mysql.conf.d/mysqld.cnf

默认数据文件目录:/var/lib/mysql,这个可以在配置文件中修改

安装位置:/usr/share/mysql

我在使用过程中将ubuntu从14.04升级到16.04,而后再安装Mysql就失败了,报错大致为: [ERROR] key_buffer=16M unrecognize ,google了一堆都说修改配置文件/etc/mysql/my.cnf,将key_buffer改为key_buffer_size,这是mysql5.7版本升级后的修改,然而该配置文件中就是key_buffer_size,让我不能理解,笨拙中又花费了好几个小时,我以为是卸载时没有清理干净,就疯狂卸载,却没有思考即便真的没有卸载干净,他到底读取的哪个配置文件呢?以后还是要冷静下来多思考才好啊。

这里先插播一下怎么干净的卸载吧!

rm /var/lib/mysql/ -r
   rm /etc/mysql -r
   rm /usr/share/mysql -r
   apt-get autoremove mysql-server
   apt-get remove mysql-common
   dpkg -l |grep ^rc|awk '{print $2}' |sudo xargs dpkg -P //清理残留数据

回到主题,mysql读取默认配置文件的顺序如下:

/etc/my.cnf 
/etc/mysql/my.cnf 
~/.my.cnf

So~让我们来看一下这个隐藏文件 ~/.my.cnf 吧,果不其然,里面的属性名称是错的,另外还需要注释掉 myisam-recover = BACKUP ,不开心搞了这么久。

MySQL启动多个实例

主要分为一下几步:

1. 创建数据目录并修改权限

mkdir new_datadir
chown -R mysql:mysql new_datadir

2. 修改配置文件 – 以配置3307端口为例,默认为3306

cp ~/.my.cnf /etc/mysql/my1.cnf
vim /etc/mysql/my1.cnf

修改主要如下:

注:socket、pid、log文件都是在启动以后才生成的,并且socket和pid在启动时生成,stop以后会自动删除。

port = 3307
socket = new_datadir/mysqld.sock
pid-file = new_datadir/mysqld.pid
datadir = new_datadir
log_error = new_datadir/error.log

3. 在apparmor中添加读写权限

vim /etc/apparmor.d/usr.sbin.mysqld
service apparmor reload

添加datadir的权限(原datadir为/var/lib/mysql):

new_datadir/ r,
new_datadir/** rwk,

4. 初始化数据库

mysqld --initialize --datadir=new_datadir --user=mysql

会看到new_datadir下创建了很多mysql的信息文件,具体可参见/var/lib/mysql下,这一步是必须的!

5. 启动

注:shell一直卡在那就说明启动了,可以 ctrl Z 进入后台运行。

mysqld_safe --defaults-file=/etc/mysql/my1.cnf

查看端口号,可以看到已被监听

netstat -nlt | grep 3307

到此启动完毕,其实操作很简单啊,不知道为啥耽误了这么久,我猜是配置哪些路径没有正确?反正经验保险起见,要设在数据目录下。

MySQL初始化密码并登陆

1. 终止mysql服务

ps -ef | grep mysql
kill pid

2. 安全模式启动

mysqld_safe --defaults-file = /etc/mysql/my1.cnf --skip-grant-tables

3. 无密码root账号登陆

mysql -uroot -p //不输密码,直接回车
mysql> use mysql;

4. 手动update修改密码

mysql> update user set authentication_string=password("123456") where user='root' and host='localhost';
mysql> flush privileges;
mysql> quit

5. 登陆

mysql -uroot -p -S /mnt/ramdisk/mysql1/mysqld.sock -P 3306

恩,登陆完成了。

MySQL停止某端口服务

本文永久更新链接地址 http://www.linuxidc.com/Linux/2017-02/140207.htm

查看更多关于【Linux系统】的文章

展开全文
相关推荐
反对 0
举报 0
评论 0
图文资讯
热门推荐
优选好物
更多热点专题
更多推荐文章
mysql_pconnect的水挺深,apache下的数据库长连接
  php的mysql持久化连接,美好的目标,却拥有糟糕的口碑,往往令人敬而远之。这到底是为啥么。近距离观察后发现,这家伙也不容易啊,要看apache的脸色,还得听mysql指挥。  对于做为apache模块运行的php来说,要实现mysql持久化连接,首先得取决于apache这个

0评论2023-02-10314

php+apache+mysql
apache2.4.7+php5.4[http://www.myhack58.com/Article/sort099/sort0100/2012/35578.htm] apachehttpd.conf:DocumentRoot:网站根目录,默认/htdocsDirectoryIndex:默认显示的文件名.默认index.html,可以有多个值.如index.html index.jsp.用空格分开Listen:端

0评论2023-02-10743

PHP从零开始:Apache+PHP+MySQL安装配置
初学一个东西,最怕的恐怕就是环境配置了。我就经常碰到这样的事而浪费很多时间。  今天在网上搜索到一个图文并茂的Apache+PHP+MySQL教程,按着一步一步安装和配置下来,很快就搞定了!这里贴一下教程的地址,希望其他初学者也可以很快搞定~http://tech.163

0评论2023-02-10575

Linux测试环境搭建apache+mysql+php
LinuxRed Hat Enterprise Linux Server release 5.4 (Tikanga)Kernel \r on an \mApache +Mysql+php搭建准备:Apache postgresql-libs-8.1.11-1.el5_1.1.i386.rpmapr-1.2.7-11.el5_3.1.i386.rpmapr-util-1.2.7-7.el5_3.2.i386.rpmhttpd-2.2.3-31.el5.i386.rpm

0评论2023-02-10830

windows支持apache、mysql、php集成环境推荐wampserver3.2 64位版本
对英文不感冒的同学很容易下载到更新包,而且官方的下载速度很慢,此文件为官方原版下载,现在分享给大家。链接:https://pan.baidu.com/s/1LYyJi6FddvkQQNrLp4L6Ww 提取码:edsaMD5: 4C32136656EB25E2951E1539D264339ESHA1: 15EAC178B27EE5298883DC3BA351B81

0评论2023-02-10547

如何搭建lamp(CentOS7+Apache+MySQL+PHP)环境
如何搭建lamp(CentOS7+Apache+MySQL+PHP)环境在网上搜资料,自己在本地虚拟机上尝试搭建,弄了整整一天一夜,终于弄好了.网上的资料,虽然很多,但大多都是重复的,拿去试了之后,又很多都不能得到正确的结果.最终找到了适合我的linux环境的搭建方式;在这里贴出来:这

0评论2023-02-10797

CentOS 6下搭建Apache+MySQL+PHP+SSL
网上的一些文章都已经比较老了,现在版本高了之后,其实配置是很省力的(不考虑什么负载的话)分享全过程,出了文中提到的安装epel rpmfushion 源指令不同外,其他的过程也适用与Centos 51.安装CentOS 6 ,可以选择最小安装,也可以安装桌面2.升级系统yum upda

0评论2023-02-10744

lnamp完整版[linux+apache2.4+php5.6.6+mysql5.6]
Lnamp环境安装实录将采用的开源软件:Apache [WEB动态脚本服务器,做nginx的反向代理8080端口]Tengine [WEB静态文件服务器80端口]MySQL PHP 1.Apache安装A.apr安装wget -c http://mirror.bjtu.edu.cn/apache/apr/apr-1.5.1.tar.gztar -zxvf apr-1..5.tar.gzcd

0评论2023-02-10810

Mac上安装PHP、Apache、MySQL
Mac自带php5.6版本,要升级到php7.3 步骤如下1,brew 安装php ,如果没有安装,访问https://brew.sh/index_zh-cn安装在终端输入以下内容,不用指定安装php版本,会自动升级到最新版本,同时brew会自动updatebrew install php 2,查看php版本php -vp.p1 { mar

0评论2023-02-10338

vm虚拟机上安装apache+php+ftp+mysql
我在vm虚拟机上想安装 winxp和linux,然后在linux机上装apache+php+ftp+mysql,以下为我的按装过程:   1:连通虚拟机:两个虚拟机都选Host-Onl,查看主机VirtualBox Host-Only Network ip地址为192.168.56.1,那我让linux,windowsxp都让为该网址192.168.5

0评论2023-02-10729

window XP下 php5.5+mysql+apache2+phpmyadmin安装
        学了将近大半年的php了,还没有装过独立的php环境,一直用的集成的。记得刚学时,一头雾水,不知改怎么搭配环境,就觉得特别复杂,各种看不懂,今天还是自己在XP环境下搭配了一个。        首先,下载php5.5、mysql、apache2、phpmyadmin安装

0评论2023-02-10472

Windows7环境下Apache连接MySQL提示“连接已重置”的解决办法
win7下手动搭建wamp环境,碰到的几个坑总结下,1.能正常访问php和html类型文件,但是访问项目文件时老是连接被重置,后来总结是数据库的问题,就写测试用例测试php能否成功调用数据库, 1 ?php 2echo "mysql"; 34$mysql_conf = array( 5 'host'= '127.0.0.1',

0评论2023-02-10619

搭建linux+nginx+mysql+php环境
说明:操作系统:CentOS 5.6 32位准备篇:一、配置好IP、DNS 、网关,确保使用远程连接工具能够连接服务器二、配置防火墙,开启80端口、3306端口vi /etc/sysconfig/iptables-A INPUT -m state --state NEW -m tcp -p tcp --dport 80 -j ACCEPT #允许80端口通

0评论2023-02-10710

WINXP下安装IIS+PHP5+MySQL5 +Apache
作者: CNETNews.com.cn 2008-08-19 14:06:02 关键词: Apache 服务器 PHP5 IIS WinXP   1.从官方网站下载安装程序。  http://www.php.net/下载Win下的Zip安装包,因为自带安装程序的文件不全。  http://www.mysql.com/ 下载Win下的最新版本即可。  h

0评论2023-02-10848

更多推荐