zoukankan      html  css  js  c++  java
  • 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/

  • 相关阅读:
    CSS color
    Python 集成开发环境(IDE)
    Flexible and Economical UTF-8 Decoder
    方程式组织EQUATION DRUG平台解析(提纲) —方程式组织系列分析报告之四
    Windows Server 2008 IE 无法调整安全级别
    蟑螂数据库
    MySQL OCP
    TCP协议疑难杂症全景解析
    数据库资源博客---小麦苗BEST
    C++并发实战 与多线程
  • 原文地址:https://www.cnblogs.com/tjsudys/p/4688574.html
Copyright © 2011-2022 走看看