linux安装mysql,和mysql热备
linux安装mysql,和mysql热备
1 安装mysql
下载 MySQL-client-community-5.1.48-1.rhel5.i386.rpm
MySQL-server-community-5.1.48-1.rhel5.i386.rpm
两个rpm安装包,然后设置为可执行
在安装包目录下运行:
[root@localhost mysql]# chmod 775 MySQL*(这个不是必须的)
首先安装mysql server
[root@localhost mysql]# rpm -ivh
MySQL-server-community-5.1.48-1.rhel5.i386.rpm
然后查看3306端口是否打开
[root@localhost mysql]# netstat -na|grep 3306
tcp 0 0 0.0.0.0:3306 0.0.0.0:*
LISTEN
说明mysql安装成功
下面安装mysql client
[root@localhost mysql]# rpm -ivh MySQL-client-community-5.1.48-1.rhel5.i386.rpm Preparing... ###########################################
[100%]
1:MySQL-client-community ###########################################
[100%]
安装完成
通过#mysql –uroot –p登录(直接输入mysql就可以了)
此时已经可以连接到mysql了
选择数据库
Mysql>use mysql;
mysql> delete from user where user='';
Query OK, 2 rows affected (0.00 sec)
mysql> update user set password=password('111111');
Query OK, 3 rows affected (0.00 sec)
Rows matched: 3 Changed: 3 Warnings: 0
mysql>flush privileges;
或者下边的也可以。
mysql> GRANT ALL PRIVILEGES ON *.* TO admin@localhost IDENTIFIED BY '123456'
WITH GRANT OPTION;
mysql> delete from user where user='root';
Query OK, 3 rows affected (0.01 sec)
mysql> delete from user where user='';
Query OK, 2 rows affected (0.00 sec)
mysql> GRANT ALL PRIVILEGES ON *.* TO root@'%' IDENTIFIED BY '123456' WITH
GRANT OPTION;
mysql>flush privileges;
生产环境中需要删除匿名账户,当更改密码时,需要使用password函数
将/usr/share/mysql下的 my-medium.cnf复制到/etc下面并重命名为my.cnf (此文件为推荐配置,有其他可选,这里拷贝的my-medium.cnf是中型数据库设置模板)
2.mysql停起
Root 账号停止mysql
[root@localhost mysql]# cd /usr/bin
[root@localhost bin]# ./mysqladmin -uroot -p111111 shutdown
[root@localhost bin]#
Root账号启动mysql
相同目录中,运行
[root@localhost bin]# ./mysqld_safe
100727 15:33:46 mysqld_safe Logging to '/var/lib/mysql/localhost.localdomain.err'.
100727 15:33:46 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
重启简单的办法是:[root@localhost ~]# /etc/init.d/mysql restart
在RedHat5企业版下,启动mysql后命令行没有成功提示,且会一直停在上面两行提示信息下,但实际数据库已经启动起来了
3 账号外网权限设置
通过root账号登陆mysql数据库 ,这里注意单引号不要用成中文的
GRANT ALL PRIVILEGES ON *.* TO ‘root’@’%’ IDENTIFIED BY ‘111111’ WITH GRANT OPTION
也可指定为内网有登陆权限
mysql> GRANT ALL PRIVILEGES ON *.* TO ‘root’@’192.168.%’ IDENTIFIED BY ‘guwei999’ WITH GRANT OPTION; Query OK, 0 rows affected (0.00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
4 热备
主服务器设置
登陆myql,在主备两台创建备份账号:
登陆mysql后执行
GRANT REPLICATION SLAVE,REPLICATION CLIENT ON *.* TO backup@'192.168.%' IDENTIFIED BY '111111';
通过root账号,编辑/etc/my.cnf文件:
server-id=1 //数据库的id这个应该默认是1就不用改动
log-bin=log_name //日志文件的名称,这里可以制定日志到别的目录如果没有设置则默认主机名的一个日志名称(我添加了路径之后,mysql启动不了)
binlog-do-db=db_name //记录日志的数据库(要求做备份的数据库名,比如memberdb)
binlog-ignore-db=db_name //不记录日志的数据库(填写mysql)
注意binlog-do-db,binlog-ignore在配置文件中的位置要放在binlog_format的后面,放在配置文件最后的话可能会导致设置无效
mysql数据库一定不要记录日志
重启mysql
登陆mysql 之后,执行show master status;
+----------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+----------------------+----------+--------------+------------------+
| testmysqlback.000002 | 189 | testmysql | mysql |
+----------------------+----------+--------------+------------------+
记住File(日志文件名) 和position (起始位置),这个很重要,一定要看清楚,file和position一会要用的。
从服务器(备服务器)设置
首先更改my.cnf配置文件,加入以下内容
server-id=2 //设置数据库id默认主服务器是1可以随便设置但是如果有多台从服务器则不能重复。 master-host=192.168.88.128 //主服务器的IP地址或者域名
master-port=3306 //主数据库的端口号
master-user=backup //同步数据库的用户
master-password=111111 //同步数据库的密码
master-connect-retry=30 //如果从服务器发现主服务器断掉,重新连接的时间差
重启mysql
进入mysql,执行以下命令
mysql> stop slave;
mysql> change master to master_host='192.168.88.128',
-> master_user='backup',
-> master_password='111111',
-> master_log_file='mysql-bin.000004',
-> master_log_pos=106;
其中master_log_file和master_log_pos=106主服务器使用show master status时的file和position, 192.168.88.128是主机的ip地址
mysql> start slave;
此时热备已经生效
Mysql>show slave status\G 可以查看slave的状态
注意~
当设置主备服务器之前,一定要保证两个数据库的
表
关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf
结构完全相同,避免不
必要的麻烦,例如当重放主服务器日志时,有create table操作,引发重
放bug。
现在你再主服务器里面的所有操作都会在备服务器里面实现复制了。