mysql linux 免安装配置
1.安装前必须删除原来的安装
需要检查 以下文件是否存在 ,如果存储则要删除之
/etc/my.cnf
/etc/init.d/mysqld
2.mysql 依赖的库
shell> yum search libaio # search for info shell> yum install libaio # install library
3.创建mysql 与用户组,-s /bin/false 表示该用户不能登录
shell> groupadd mysql shell> useradd -r -g mysql -s /bin/false mysql
4.解压安装包至指定目录
shell> tar zxvf /path/to/mysql-VERSION-OS.tar.gz shell> ln -s full-path-to-mysql-VERSION-OS mysql shell> cd mysql
5.为 mysql 用户添加权限
shell> chown -R mysql ./ shell> chgrp -R mysql ./ #创建data目录并添加权限 shell> mkdir -p /data/mysql shell> chown -R mysql:mysql /data/mysql
6.拷贝配置文件
shell> cp support-files/my-default.cnf /etc/my.cnf #修改配置 shell> vim /etc/my.cnf shell> cp support-files/mysql.server /etc/init.d/mysql
7.初始化 mysql 库
shell> ./scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql
8.添加环境变量
shell> vi /etc/profile PATH=/home/cbt/svr/mysql/bin:$PATH export PATH #让刚才的修改生效 shell> source /etc/profile
9.启动及其它配置 #启动数据库
service mysql start
(如果启动失败, 查看hosts文件配置IP地址)
#开机启动
chkconfig mysqld on
#初始化mysql的一些设置
mysql_secure_installation #回车 Enter current password for root (enter for none): #y,设置mysql的root密码 Set root password?[Y/n] y #以下都yes Remove anonymous users?[Y/n] y Disallow root login remotely?[Y/n] y Remove test database and access to it?[Y/n] y Reload privilege tables now?[Y/n] y ThanksforusingMySQL!
10.允许远程登陆
1. mysql> use mysql; 2. mysql> select host,user,password from user; 3. mysql> update user set password=password('123456') where user='root'; 4. mysql> update user set host='%' where user='root' and host='localhost'; 5. mysql> flush privileges;
++++++++++++++++++++++++++++++++++++++++++++++++++
配置主从同步基本思路是
1.master my.cnf 配置
#数据库ID号, 为1时表示为Master,其中master_id必须为1到232–1之间的一个正整数值; server-id = 1 #binlog 格式 binlog-format=ROW #启用二进制日志; log-bin=mysql-master-bin #slave更新时是否记录到日志中;log-slave-updates=true #开启半同步rpl_semi_sync_master_enabled=ON #需要同步的二进制数据库名; binlog-do-db=tuling(这里你需要同步的数据库) #不同步的二进制数据库名,如果不设置可以将其注释掉; binlog-ignore-db=information_schema binlog-ignore-db=mysql binlog-ignore-db=personalsite binlog-ignore-db=test #设定生成的log文件名; log-bin="D:/Database/materlog" #把更新的记录写到二进制文件中; log-slave-updates
(如果重启mysql无法启动,通过查找err文件发现rpl_semi_sync_master_enabled=ON 有问题,注释掉)
通过以下步骤进行配置半同步
mysql> install plugin rpl_semi_sync_master soname 'semisync_master.so'; Query OK, 0 rows affected (0.21 sec) mysql> show variables like 'rpl_%'; +------------------------------------+-------+ | Variable_name | Value | +------------------------------------+-------+ | rpl_recovery_rank | 0 | | rpl_semi_sync_master_enabled | OFF | | rpl_semi_sync_master_timeout | 10000 | | rpl_semi_sync_master_trace_level | 32 | | rpl_semi_sync_master_wait_no_slave | ON | +------------------------------------+-------+ 5 rows in set (0.00 sec) 设置变量,启用半同步复制 mysql> set global rpl_semi_sync_master_enabled=on ; Query OK, 0 rows affected (0.02 sec) mysql> install plugin rpl_semi_sync_master soname 'semisync_master.so'; Query OK, 0 rows affected (0.21 sec) mysql> show variables like 'rpl_%'; +------------------------------------+-------+ | Variable_name | Value | +------------------------------------+-------+ | rpl_recovery_rank | 0 | | rpl_semi_sync_master_enabled | OFF | | rpl_semi_sync_master_timeout | 10000 | | rpl_semi_sync_master_trace_level | 32 | | rpl_semi_sync_master_wait_no_slave | ON | +------------------------------------+-------+ 5 rows in set (0.00 sec) 设置变量,启用半同步复制 mysql> set global rpl_semi_sync_master_enabled=on ; Query OK, 0 rows affected (0.02 sec)
2.创建用户用于主从同步的数据库(是用于与从库进行连接的用户,与登入主库帐号无关)
grant replication slave,super,reload on *.* to slave1@192.168.142.128 identified by '123456';
3.查看主节点状态
mysql> show master status #在主库上查看已连接的slave主机 mysql> show slave hosts; #查看所有binlog日志 mysql> show binary logs; #查看所有binlog 事件 mysql> show binlog events in 'mysql-bin.000003';
4.slave my.cnf 配置
#如果需要增加Slave库则,此id往后顺延; server-id = 2 log-bin=mysql-bin #主库host master-host = 192.168.168.253 #在主数据库服务器中建立的用于该从服务器备份使用的用户 master-user = forslave master-password = ****** master-port = 3306 #如果发现主服务器断线,重新连接的时间差; master-connect-retry=60 #不需要备份的数据库; replicate-ignore-db=mysql #需要备份的数据库 replicate-do-db=minishop log-slave-update
5.Slave 相关操作
#启动slave mysql>start slave; mysql>stop slave; #查看 slave 状态 show slave status\G;
备注:1)运行配置后的主数据库服务器先于从数据库服务器,这样运行从数据库服务器时,主库的 File 和 Position 与 从库的上设置Master_Log_File、Read_Master_Log_Pos 就会一致。否则,可能出现不一致的情况。这也可以通过命令调整。
2)如果发现主从复制失败时,可以先关闭从数据库服务器,然后删除从数据库服务器中data目录下relay-log.info,hosname-relay-bin*,master.info等文件,重启从服务器。
slave 节点修改master 配置
mysql>change master to master_host='192.168.142.128', master_user='slave1', master_password='123456' ,MASTER_AUTO_POSITION = 341;
读写分离实现 360 Atlas
安装与卸载Atlas
#安装
shell> rpm -i Atlas-2.2.1.el6.x86_64.rpm
#卸载
shell> rpm -e Atlas-2.2.1.el6.x86_64.rpm
安装目录在 /usr/local/mysql-proxy/ 当中
Atlass配置
#Atlas后端连接的MySQL主库的IP和端口,可设置多项,用逗号分隔
proxy-backend-addresses = 127.0.0.1:3306
#Atlas后端连接的MySQL从库的IP和端口,@后面的数字代表权重,用来作负载均衡,若省略则默认为1,可设置多项,用逗号分隔
#proxy-read-only-backend-addresses = 127.0.0.1:3305@1
#用户名与其对应的加密过的MySQL密码,密码使用PREFIX/bin目录下的加密程序encrypt加密。用户密码所有主库和从库都必须一至
pwds = root:/iZxz+0GRoA=
#Atlas监听的工作接口IP和端口
proxy-address = 0.0.0.0:1234
启动与关闭Atlas
./mysql-proxyd test start
./mysql-proxyd test stop
以代理方式进行管理员登录
mysql -h127.0.0.1 -P2345 -uroot -proot