mysql 安装与主从配置

我是ssh远程 配置的;略微有些不同,大家自己斟酌。
1.安装MySQL
sudo yum install mysql mysql-server
sudo chgrp -R mysql /var/lib/mysql
sudo chmod -R 770 /var/lib/mysql
sudo service mysqld start 
 
第一次安装设置密码:mysql_secure_installation
回车,根据提示输入Y
输入2次密码,回车
根据提示一路输入Y
最后出现:Thanks for using MySQL!

2. 创建一个新的用户test在MySQL上
mysql>grant all privileges on mysql .* to test@192.168.100.206 identified by 'mysql';
 
这里顺便提下取消授权的命令 为revoke 再将语句中的to 换为from 达到撤销已赋权限的目的
 
删除用户的命令为
drop user 用户名@‘%’
 以下内容为在MySQL上建立的一个test的数据库操作的
3.MySQL主从配置
 grant all on *.* to user1@192.168.100.205 identified by "mysql";
192.168.100.205 slave(从服务器)的IP
 
MySQL从服务器上登陆MySQL主服务器
sudo mysql -uuser1 -pmysql -h192.168.100.206
4.主服务器my.cnf配置

[mysqld]
server-id=1
log-slow-queries=mysql-slow.log
log-error=mysql.err
log=mysql.log
log-bin=mysql-bin
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

 

从服务器my.cnf配置
[mysqld]
port=3306
server-id=2
expire_logs_day=7
log-slow-queries=mysql-slow.log
log-error=mysql.err
log=mysql.log
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql

#character-set-server = utf8

#collation-server =utf8_general_ci 此行和上一行为改变编码为UTF8 ,

#如果要改的话一定要注意所有的编码都要改
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

 

5.mysql服务器备份(主服务器)
#mysqldump -uroot -pmysql test -l -F >'/tmp/test.sql'
此命令备份不用另外读锁
-F即flush logs
-l 表示数据库只能进行读的操作

 
 Tips:可以通过binlog日志恢复 ,还有flush logs 的作用很重要,也可以说flush作用很大
进行操作完成前最好刷新下日志。
6.MySQL的恢复:
mysql -uroot -pmysql test -v -f< /tmp/test.sql
-v 查看导入的详细信息;
-f 是当中间遇到错误时可以skip,继续执行下面的语句
 
恢复binlog-file的二进制日志文件
mysqlbinlog --no-defaults binlog-file |mysql -uroot -pmysql
但是很多时候binlog日志里面有些操作需要丢弃;
那就要使用不同的命令来满足需求了:
#mysqlbinlog --no-defaults mysqk-bin.000004 --start-position="193"--stop-position="280"|more
恢复position位置为193-280的数据。
从第一次开始恢复可以去掉--start-position
 
也可以通过时间点来恢复
如:--stop-date="xxxx-xx-xx xx:xx:xx'
--start-date="xxxx-xx-xx xx:xx:xx'
 
6.将主服务器上备份的文件复制到从服务器tmp下
scp /tmp/test.sql 192.168.100.205:/tmp/
然后在从服务器上进行恢复,恢复之前最好先Reset master;
mysql -uroot -pmysql test < /tmp/test.sql
 

mysql> show slave status\G;
*************************** 1. row ***************************
               Slave_IO_State: Waiting for master to send event
                  Master_Host: 192.168.100.206
                  Master_User: user1
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: mysql-bin.000004
          Read_Master_Log_Pos: 262
               Relay_Log_File: mysqld-relay-bin.000006
                Relay_Log_Pos: 407
        Relay_Master_Log_File: mysql-bin.000004
             Slave_IO_Running: Yes
            Slave_SQL_Running: Yes  #这两行YES代表成功了

              Replicate_Do_DB:
          Replicate_Ignore_DB:
           Replicate_Do_Table:
       Replicate_Ignore_Table:
      Replicate_Wild_Do_Table:
  Replicate_Wild_Ignore_Table:
                   Last_Errno: 0
                   Last_Error:
                 Skip_Counter: 0
          Exec_Master_Log_Pos: 262
              Relay_Log_Space: 708
              Until_Condition: None
               Until_Log_File:
                Until_Log_Pos: 0
           Master_SSL_Allowed: No
           Master_SSL_CA_File:
           Master_SSL_CA_Path:
              Master_SSL_Cert:
            Master_SSL_Cipher:
               Master_SSL_Key:
        Seconds_Behind_Master: 0
Master_SSL_Verify_Server_Cert: No
                Last_IO_Errno: 0
                Last_IO_Error:
               Last_SQL_Errno: 0
               Last_SQL_Error:
1 row in set (0.00 sec)

 

以下为用到的一些命令及笔记

mysql> insert into t1 values(4),(5),(6),(7),(8);插入

为表创建索引:create index in_id on t1(id);
查看索引 show index from t1;
desc t2;查看表结构
出入一个一千万行的数据
insert into t2 values(1),(2),(3),(4);
insert into t2 select * from t2;

查看多少行
select count(*) from t2;

实时 监控命令:watch -nl ls -lh    1S刷新一次

alt+F2开启第二个终端
改变定界符:\d // 这样使用 ;就不是结束,不会开始执行
换回来 \d ;

free -m 内存使用

建立索引 create index idx_of_c3 on part_tab(c3)

默认索引文件名:ibdatal  在data目录下


mysql 表复制
mysql> create table t2 like t1;
复制表数据(表结构相同的情况下);
mysql>insert into t2 select * from t1;

 

 

 我是看的这个视频http://pan.baidu.com/s/1lCASk

 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MySQL主从复制是一项非常常用的高可用性和扩展性解决方案,它可以将一个MySQL服务器(主节点)上的更改同步到一个或多个MySQL服务器(从节点)上,从而实现数据的备份、负载均衡、故障转移等功能。下面是安装配置MySQL主从复制的步骤: 1.安装MySQL 在主节点和从节点上都需要安装MySQL,可以使用以下命令安装: ``` sudo apt-get update sudo apt-get install mysql-server ``` 2.配置主节点 在主节点上,需要对MySQL进行以下配置: - 编辑`/etc/mysql/mysql.conf.d/mysqld.cnf`文件,将`bind-address`改为主节点的IP地址; - 在`[mysqld]`下新增`log-bin=mysql-bin`,表示启用二进制日志; - 在`[mysqld]`下新增`server-id=1`,表示设置主节点的ID为1; - 重启MySQL服务:`sudo service mysql restart`。 3.配置从节点 在从节点上,需要对MySQL进行以下配置: - 编辑`/etc/mysql/mysql.conf.d/mysqld.cnf`文件,将`bind-address`改为从节点的IP地址; - 在`[mysqld]`下新增`server-id=2`,表示设置从节点的ID为2; - 重启MySQL服务:`sudo service mysql restart`。 4.在主节点上创建复制账户 在主节点上,创建一个可以进行复制操作的账户,可以使用以下命令: ``` CREATE USER 'repl'@'%' IDENTIFIED BY 'password'; GRANT REPLICATION SLAVE ON *.* TO 'repl'@'%'; FLUSH PRIVILEGES; ``` 其中,`repl`为账户名,`password`为密码。 5.获取主节点状态 在主节点上,需要获取当前的二进制日志文件名和偏移量,可以使用以下命令: ``` SHOW MASTER STATUS; ``` 记录下`File`和`Position`的值,后面会用到。 6.配置从节点复制信息 在从节点上,需要对复制进行配置,可以使用以下命令: ``` CHANGE MASTER TO MASTER_HOST='master_ip', MASTER_USER='repl', MASTER_PASSWORD='password', MASTER_LOG_FILE='mysql-bin.000001', -- 主节点上的File值 MASTER_LOG_POS=1234; -- 主节点上的Position值 ``` 其中,`master_ip`为主节点的IP地址,`repl`和`password`为上一步中创建的账户和密码,`mysql-bin.000001`和`1234`为上一步中获取到的File和Position值。 7.启动从节点复制 在从节点上,使用以下命令启动复制: ``` START SLAVE; ``` 可以使用以下命令检查复制状态: ``` SHOW SLAVE STATUS\G ``` 如果`Slave_IO_Running`和`Slave_SQL_Running`都为`Yes`,则说明复制已经成功启动。 8.测试 在主节点上进行数据变更,可以使用以下命令: ``` USE test; CREATE TABLE t1 (id INT PRIMARY KEY); INSERT INTO t1 VALUES (1), (2), (3); ``` 在从节点上检查是否同步成功: ``` USE test; SELECT * FROM t1; ``` 如果能够看到刚才插入的数据,则说明主从复制已经成功配置。 注意,以上步骤只是一个基本的示例,实际应用中可能还需要进行其他的配置和优化。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值