mysql 单机同版本多实例 mysql55

先贴上my.cnf

[mysqld_multi]
mysqld = /usr/bin/mysqld_safe
mysqladmin = /usr/bin/mysqladmin
user =root
password =123456

[mysqld2]
socket = /tmp/mysql.sock2
port = 3306
pid-file = /home/mysql/mysql2/hostname.pid2
datadir = /home/mysql/mysql2
user =mysql
log-bin = /home/mysql/mysql2/binlog
log-error = /home/log/mysql2.log

[mysqld3]
socket = /tmp/mysql.sock3
port = 3307
pid-file = /home/mysql/mysql3/hostname.pid3
datadir = /home/mysql/mysql3
user =mysql
log-bin = /home/mysql/mysql3/binlog
log-error = /home/log/mysql3.log

my.cnf 参数解析 

  注意mysqld 以及mysqladmin的位置,是安装的mysql的位置,目录下要有mysqld_safe 和 mysqladmin

user和password的用处暂时不清楚

[mysqld2]以及[mysqld3]可以通过修改数字,添加更多的实例,同时数字2,3也是开启实例的标志符号

socket 以及 port 是定义进入不同数据库实例的凭据,之后登陆会用到

pid-file 作用不明,但不同实例的目录要不一样

datadir是数据存放地点,最好是存储空间较大的目录下

user一般默认mysql [猜测是数据库自动操作时使用的系统账号,比如读写数据等]

log-bin log-error 数据库变更信息文件,数据库错误信息文件,在做主从或者主主数据库复制的时候需要用到log-bin

log-bin log-error datadir pid-file socket在各个实例配置中需要保证唯一,也就是互不相同

  datadir log-error log-bin等目录需要自己手动新建[如果不存在的话] ,并且将权限赋值给user[这里是mysql]

  datadir 需要在终端调用mysql_install_db --datadir=‘/你的路径‘  --user=‘你的用户[这里是mysql]‘

如果找不到mysql_instal_db 那么可能是未添加mysql到环境变量中,需要添加mysql的安装路径到环境变量,使用 export 语句,该工具与mysqld_multi mysqld_safe 在同一个目录

mysql的安装路径,要看各自的机器,一般是/usr/bin 或者/usr/local/mysql/bin ,只要能够在目录下找到mysql_install_db,mysqld_safe 这几个文件,基本就可以确定是mysql的路径了。

开启实例

配置好my.cnf 添加好各个实例的数据文件并赋予user[这里是mysql]目录权限[通过chown  -r  用户名.群组名  文件名],确认端口未被占用,应该就可以打开实例了

打开实例用到:mysqld_mutil

直接输入命令可以查看具体用法,

主要用到的有 mysqld_mutil -start [id]      [id]   可以是  2,3(打开[mysqld2] 和 [mysqld3])    2(仅[mysqld2])    2-5(打开 [mysqld2] 到 [mysqld5])

这里就用到了之前的标示符了,通过这个命令可以启动 批量 或者 单个 实例

mysqld_mutil report  该命令用来查看各个实例状态,如果看到一下两行,就说明启动了,英文还是很好理解的

          MySQL server from group: mysqld2 is running
          MySQL server from group: mysqld3 is running

如果一切正常,可以看到log-bin  log-error sock等文件都出来了,并且对应端口也被mysqld占用,端口查看用到netstat 命令

多实例开启后,登陆需要使用 mysql -u[用户名] -p[密码,可以先不输入等待系统提醒后输入] -S[sock 配置文件中的sock文件] -P[端口号]     (注意大小写[]要去掉)

         ex->  mysql -uroot -p -S/tmp/mysql.sock2 -P3306

因为是多个实例,所以不能像单个实例那样 直接mysql -u -p 了,需要有标志性的区别符号,也就是之前定义的 sock 或者 指定端口

然后输入密码,你可能会发现,不管用什么账号,密码,都无法进入数据库,或者进入后没有各种权限,

这个时候你需要第一次初始化root账号  mysqladmin -S[sock] password "来一个初始密码~"  设置完后应该就可以用root账号登陆了

简单用户操作

之后的操作,比如

添加数据库 create database [database 名字];

显示所有数据库 show databases;

使用某个数据库 use [database 名字];

新建账号 create user ‘user name‘@‘host‘ identified by ‘用户密码‘

(host 是允许的客服端访问身份,可以是指定ip地址 , localhost仅本机 , % [%表示所有的访问地址都接受],或者192.168.1.% 这样的ip段)

用户密码 用户名 host 三个组成一个primary key 这些数据可以再mysql.user表中查看 ,所以其实也可以直接操作 mysql.user 表来添加用户(具体网上有-简直废话)

新建账号,并给与权限-这个比单纯的新建账号好用多了  grant select,delete,update,insert on *.* to ‘user name‘@‘host‘ identified by ‘key‘

其中 select,delete 等 是权限, 其他类似权限 比如  all privileges

*.*表示权限的对象是数据库的 ,当然也可以指定权限对象是单一数据库 如 test.* 表示用户只能查看test这个表[并不清楚为什么一定是test.* 而不是直接 test]

host 和之前的一样,如果所有地址的访问都接受,那么就用 %

设置完权限后记得要 flush privileges; 否则可能会无法正常使用账号

删除用户:delete from mysql.user where user =‘user name‘

结果删除的时候还是用到了这张表。。

设置完权限后记得要 flush privileges;

-master-slave -主从服务器搭建  [想歪的面壁去]

http://www.mike.org.cn/articles/mysql-master-slave-sync-conf-detail/

时间: 2024-11-14 12:37:16

mysql 单机同版本多实例 mysql55的相关文章

amoeba针对MySQL单机多实例配置文件注释

MySQL单机多实例的读写分离可以通过第三方软件来实现,其中一个叫简单的读写分离软件就是今天所带给大家的amoeba软件. 本次使用的amoeba软件为amoeba-mysql-binary-2.1.0-RC5.tar.gz 本软件是基于JAVA环境运行的,所以需要JAVA环境支持,具体环境配置不做详解. 本文主要解释两个主配置文件. 1.dbServer.xml 这个文件配置的是父配置(用来给默认子配置补充配置项) 真实mysql服务器的端口,数据库名称,mysql用户及密码 主服务器,从服务

MySQL管理之SQL语句实例

MySQL管理之SQL语句实例 首先,我们来导入world库,这个world库中的表是mysql ocp考试专用表,在网上有下 mysql> source/root/world_innodb.sql 表结构如下: 本文来自http://yijiu.blog.51cto.com 转载请经博主允许 ,盗帖可耻! CREATE TABLE `Country` (  `Code` char(3) NOT NULL DEFAULT '',  `Name` char(52) NOT NULL DEFAULT

《转》MySQL 5.7版本新特性连载

MySQL 5.7版本新特性连载(一) 本文将和大家一起分享下5.7的新特性,不过我们要先从即将被删除的特性以及建议不再使用的特性说起.根据这些情况,我们在新版本及以后的版本中,应该不再使用,避免未来产生兼容性问题. 本文是基于MySQL-5.7.7-rc版本,未来可能 还会发生更多变化. 1.即将删除的特性1.1.InnoDB monitoring features,详见:WL#7377(访问地址:http://dev.mysql.com/worklog/task/?id=7377,下面的其他

MySQL--------多版本多实例混合部署

1. 背景 * MySQL数据库的集中化运维,可以通过在一台服务器上,部署运行多个MySQL服务进程,通过不同的socket监听不同的服务端口来提供各自的服务.各个实例之间是相互独立的,每个实例的datadir, port, socket, pid都是不同的. * 网上多实例一般通过实例版本相同实现,此次以不同版本来实现多实例部署(5.5.5.6.5.7). 2. 多实例特点 * 有效利用服务器资源,当单个服务器资源有剩余时,可以充分利用剩余的资源提供更多的服务. * 资源互相抢占问题,当某个服

MySQL之体系结构与存储实例

定义数据库和实例 在数据库领域中有两个词很容易混淆,这就是"数据库"(database)和"实例"(instance).作为常见的数据库术语,这两个词的定义如下: 数据库:物理操作系统文件或其他形式文件类型的集合.在MySQL数据库中,数据库文件可以是fm.MYD.MYI.ibd结尾的文件.当使用NDB引擎时,数据库的文件可能不是操作系统上的文件,而是存放在内存之中的文件,但是定义仍然不变. 实例:MySQL数据库由后台线程以及一个共享内存区组成.共享内存可以被运行

源码安装mysql5.6.20&&mysql主从设置(多实例做多个主从)

一.源码安装mysql5.6.20 1.编译环境安装 yum install wget gcc* make openssl openssl-devel openssl-clients -y && yum groupinstall "Development Libraries" -y 2.源码下载(软件见Linux部署源码包) wget -P /usr/local/src/ http://cdn.mysql.com/Downloads/MySQL-5.6/mysql-5.

MySQL新旧版本ORDER BY 处理方法

MySQL 的order by 涉及到三个参数:A. sort_buffer_size 排序缓存.B. read_rnd_buffer_size 第二次排序缓存.C. max_length_for_sort_data 带普通列的最大排序约束. 我来简单说下MySQL的排序规则.假设查询语句select * from tb1 where 1 order by  a ; 字段a没有建立索引:以上三个参数都足够大.MySQL内部有两种排序规则:第一种,是普通的排序.这种排序的特点是节省内存,但是最终会

mysql数据库分区功能及实例详解

分区听起来怎么感觉是硬盘呀,对没错除了硬盘可以分区数据库现在也支持分区了,分区可以解决大数据量的处理问题,下面一起来看一个mysql数据库分区功能及实例详解 一,什么是数据库分区 前段时间写过一篇关于mysql分表的的文章,下面来说一下什么是数据库分区,以mysql为例.mysql数据库中的数据是以文件的形势存在磁盘上的,默认放在/mysql/data下面(可以通过my.cnf中的datadir来查看),一张表主要对应着三个文件,一个是frm存放表结构的,一个是myd存放表数据的,一个是myi存

Windows下安装Mysql绿色zip版本

以mysql-5.7.4-m14-winx64为例,mysql-5.7.4-m14-winx64.zip下载地址http://dev.mysql.com/downloads/mysql/5.7.html 解压到安装目录D:\mysql-5.7.4-m14-winx64 安装根目录D:\mysql-5.7.4-m14-winx64下创建选项配置文件my.ini [client] port=3306 socket="D:/mysql-5.7.4-m14-winx64/data/mysql.sock&