MySQL多实例配置

今天闲着没事又把mysql多实例知识回顾了一下,虽然以前配置过,这次还是遇到很多坑…

  1. 安装mysql数据库,见前面博文
  2. 创建mysql多实例的数据文件目录
    本次是/data目录作为mysql多实例总的根目录。
    /data ——————–总的多实例根目录
    ├── 3306——————-3306实例的目录
    │ ├── data—————-3306实例的数据文件目录
    │ ├── my.cnf————–3306实例的配置文件
    │ ├── mysql—————3306实例的启动文件

    └── 3307——————-3307实例的目录
    ├── data—————–3307实例的数据文件目录
    ├── my.cnf—————3307实例的配置文件
    ├── mysql—————-3307实例的启动文件
    相关配置文件data.zip下载: http://pan.baidu.com/s/1geYvQRh

首先删掉mysql单实例的相关:rm -f /etc/init.d/mysqld
接着按照创建mysql多实例的目录结构及文件:`mkdir -p /data/{3306,3307}/data

  1. 配置mysql多实例的文件权限
chown -R mysql.mysql /data  #授权mysql用户和组管理整个多实例目录/data
find /data -type f -name "mysql"|xargs chmod +x  #授权mysql多实例服务所有启动文件mysql可执行
  1. 配置mysql命令的全局使用路径
echo 'export PATH=/usr/local/mysql-5.5.32/bin:$PATH' >>/etc/profile  #echo后面是单引号
source /etc/profile   #执行source使上一行生效
  1. 初始化mysql多实例的数据库文件
    mysql 5.5.32初始化命令:
cd /usr/local/mysql-5.5.32/scripts  #与5.1的路径不同,不在mysql bin路径下了
./mysql_install_db  --basedir=/usr/local/mysql-5.5.32  --datadir=/data/3306/data --user=mysql;
./mysql_install_db  --basedir=/usr/local/mysql-5.5.32  --datadir=/data/3307/data --user=mysql;

多实例登录数据库:

#指定sock登录
mysql -S  /data/3306/mysql.sock 
mysql -S  /data/3307/mysql.sock  

重启数据库:

/data/3306/mysql stop
/data/3306/mysql start
/data/3306/mysql restart

此时stop数据库,关闭不了?
停止数据库需要指定密码,mysql文件里面默认密码是123456,修改为空,这样就可以关闭了,但是这样没密码很危险。
为root增加密码:

#数据库服务需要先启动
mysqladmin -u root -S /data/3306/mysql.sock password '123456';
mysqladmin -u root -S /data/3307/mysql.sock password '123456';

将目录中mysql脚本的mysql_pwd修改为mysql_pwd=”123456”
将mysql脚本授权为root,700:

find /data -type f -name "mysql"
find /data -type f -name "mysql" -exec chmod 700 {} \;
find /data -type f -name "mysql" -exec chown root.root {} \;

然后就可以正常启动关闭了。

注意:mysql脚本中多一个少一个空格就可能产生问题。

function_stop_mysql()
{
    if [ ! -e "$mysql_sock" ];then
        printf "MySQL is stopped...\n"
        exit
    else
        printf "Stoping MySQL...\n"
        ${CmdPath}/mysqladmin -u ${mysql_user} -p${mysql_pwd} -S /data/${port}/mysql.sock shutdown
    fi
}
当时在-p${mysql_pwd}中间加了一个空格-p ${mysql_pwd}就导致服务停不了。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值