存档

文章标签 ‘mysql’

mysql服务器主从同步配置

2010年2月22日 邹清水 没有评论

Mysql主从配置

1.         主mysql配置:

grant replication slave on *.* to replication@10.20.137.148 identified by '123456';

vi /usr/local/mysql/my.cnf

log-bin=mysql-bin

同步的数据库

binlog-do-db=star

不同步的数据库

binlog-ignore-db=information_schema

binlog-ignore-db=mysql

binlog-ignore-db=test

2.         从mysql配置

log-bin=mysql-bin

server-id       = 2

master-host     =  10.20.137.150

master-user     =  replication

master-password =  123456

同步的数据库

binlog-do-db=star

不同步的数据库

binlog-ignore-db=information_schema

binlog-ignore-db=mysql

binlog-ignore-db=test

3.         检查

主mysql:

mysql> show master status\G

*************************** 1. row ***************************

            File: mysql-bin.000005

        Position: 106

    Binlog_Do_DB: star

Binlog_Ignore_DB: information_schema,mysql,test

1 row in set (0.00 sec)

从mysql:

mysql> show slave status\G

*************************** 1. row ***************************

               Slave_IO_State: Waiting for master to send event

                  Master_Host: 10.20.137.150

                  Master_User: replication

                  Master_Port: 3306

                Connect_Retry: 60

              Master_Log_File: mysql-bin.000005

          Read_Master_Log_Pos: 106

               Relay_Log_File: test02-relay-bin.000012

                Relay_Log_Pos: 251

        Relay_Master_Log_File: mysql-bin.000005

             Slave_IO_Running: Yes

            Slave_SQL_Running: Yes

              Replicate_Do_DB: star

          Replicate_Ignore_DB: information_schema,mysql,test

           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: 106

              Relay_Log_Space: 450

              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)

4.         服务器管理

       3台测试服务器地址:

              test01.fbikey.com

              test02.fbikey.com

              test03.fbikey.com

              root / BqqAuJTmXNUz3LXzJyHQfskB7DjdE99o

       mysql用户和密码:

              sitemanager / UnHGIyDAeID2aVHP6qJv

       进入mysql:

              /usr/local/mysql/bin/mysql –u sitemanager -pUnHGIyDAeID2aVHP6qJv

       启动 /bin/sh /usr/local/mysql/bin/mysqld_safe --defaults-file=/usr/local/mysql/my.cnf &

       上面3台测试服务器需要从web8.fbikey.com跳转

              root / 23r9&*#hfcnadhb23ad939g0cq2UFH28

5.         参考

http://blog.sina.com.cn/s/blog_474cf12b0100fbp7.html

http://myreligion.javaeye.com/blog/366508

http://kiddymeet.blog.51cto.com/20194/199185

http://www.ai77.org/archives/430

http://hi.chinaunix.net/?uid-227005-action-viewspace-itemid-39545

http://blog.chinaunix.net/u/25969/showart_723396.html

http://www.joinphp.cn/blog/?p=70

http://www.joinphp.cn/blog/?p=75

编者注:如果想让从服务器主动认识主服务器上的新建数据库事件,那么请将binlog-do-db= 的值留空即可!

  • Share/Bookmark
分类: Linux 技术 标签: ,

MYSQL 教程之MYSQLDUMP使用全攻略

2009年11月7日 邹清水 没有评论

MYSQL教程:mysqldump使用全攻略

mysqldump是一个mysql自带的数据库工具,它是一个由shell调用的工具软件,并不是sql命令。
shell> mysqldump [OPTIONS] database [tables]
如果你不给它指定任何表,整个数据库将被mysqldump导出。

如果你想查看mysqldump的版本信息和帮助,通过执行mysqldump –help可实现。
注意,如果你运行mysqldump没有–quick或–opt选项,mysqldump将在导出结果前装载整个结果集到内存中,如果你正在导出一个大的数据库,这将可能是一个问题。

mysqldump支持下列选项:

–add-locks
在每个表导出之前增加LOCK TABLES并且之后UNLOCK TABLE。(为了使得更快地插入到MySQL)。
–add-drop-table
在每个create语句之前增加一个drop table。
–allow-keywords
允许创建是关键词的列名字。这由表名前缀于每个列名做到。
-c, –complete-insert
使用完整的insert语句(用列名字)。
-C, –compress
如果客户和服务器均支持压缩,压缩两者间所有的信息。
–delayed
用Insert DELAYED命令插入行。
-e, –extended-insert
使用全新多行Insert语法。(给出更紧缩并且更快的插入语句)
-#, –debug[=option_string]
跟踪程序的使用(为了调试)。
–help
显示一条帮助消息并且退出。
–fields-terminated-by=…

–fields-enclosed-by=…

–fields-optionally-enclosed-by=…

–fields-escaped-by=…

–fields-terminated-by=…
这些选择与-T选择一起使用,并且有相应的LOAD DATA INFILE子句相同的含义。
LOAD DATA INFILE语法。
-F, –flush-logs
在开始导出前,洗掉在MySQL服务器中的日志文件。
-f, –force,
即使我们在一个表导出期间得到一个SQL错误,继续。
-h, –host=..
从命名的主机上的MySQL服务器导出数据。缺省主机是localhost。
-l, –lock-tables.
为开始导出锁定所有表。
-t, –no-create-info
不写入表创建信息(Create TABLE语句)
-d, –no-data
不写入表的任何行信息。如果你只想得到一个表的结构的导出,这是很有用的!
–opt
同–quick –add-drop-table –add-locks –extended-insert –lock-tables。
应该给你为读入一个MySQL服务器的尽可能最快的导出。
-pyour_pass, –password[=your_pass]
与服务器连接时使用的口令。如果你不指定“=your_pass”部分,mysqldump需要来自终端的口令。
-P port_num, –port=port_num
与一台主机连接时使用的TCP/IP端口号。(这用于连接到localhost以外的主机,因为它使用 Unix套接字。)
-q, –quick
不缓冲查询,直接导出至stdout;使用mysql_use_result()做它。
-S /path/to/socket, –socket=/path/to/socket
与localhost连接时(它是缺省主机)使用的套接字文件。
-T, –tab=path-to-some-directory
对于每个给定的表,创建一个table_name.sql文件,它包含SQL Create 命令,和一个table_name.txt文件,它包含数据。 注意:这只有在mysqldump运行在mysqld守护进程运行的同一台机器上的时候才工作。.txt文件的格式根据–fields-xxx和–lines–xxx选项来定。
-u user_name, –user=user_name
与服务器连接时,MySQL使用的用户名。缺省值是你的Unix登录名。
-O var=option, –set-variable var=option设置一个变量的值。可能的变量被列在下面。
-v, –verbose
冗长模式。打印出程序所做的更多的信息。
-V, –version
打印版本信息并且退出。
-w, –where=’where-condition’
只导出被选择了的记录;注意引号是强制的!
“–where=user=’jimf’” “-wuserid>1″ “-wuserid<1″

最常见的mysqldump使用可能制作整个数据库的一个备份:

mysqldump –opt database > backup-file.sql

但是它对用来自于一个数据库的信息充实另外一个MySQL数据库也是有用的:

mysqldump –opt database | mysql –host=remote-host -C database

由于mysqldump导出的是完整的SQL语句,所以用mysql客户程序很容易就能把数据导入了:

shell> mysqladmin create target_db_name
shell> mysql target_db_name < backup-file.sql
就是
shell> mysql 库名 < 文件名

================================
几个常用用例:

1.导出整个数据库
mysqldump -u 用户名 -p 数据库名 > 导出的文件名
mysqldump -u wcnc -p smgp_apps_wcnc > wcnc.sql
2.导出一个表
mysqldump -u 用户名 -p 数据库名 表名> 导出的文件名
mysqldump -u wcnc -p smgp_apps_wcnc users> wcnc_users.sql
3.导出一个数据库结构
mysqldump -u wcnc -p -d –add-drop-table smgp_apps_wcnc >d:\wcnc_db.sql

-d 没有数据 –add-drop-table 在每个create语句之前增加一个drop table

4.导入数据库
常用source 命令
进入mysql数据库控制台,
如mysql -u root -p

mysql>use 数据库

然后使用source命令,后面参数为脚本文件(如这里用到的.sql)
mysql>source d:\wcnc_db.sql

  • Share/Bookmark

安装 Zen Cart报1366错误的解决方法

2009年10月31日 邹清水 1 条评论

错误现象:1366错误 - Incorrect integer value: '' for column 'folder_sn' at row 1

这个是在mysql5.X版本上才会出现的错误(几乎所有的mysql5.X默认配置环境下都 会报这个错误),因为据无风的研究发现,mysql5.X默认是不使用自增量的:-P。所要做的修改也很简单,请往下看;

找到你的mysql配置文件:
1、编辑my.ini
2、注释掉里面的这一行:
mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
(这一行是禁用自动增长字段的。关掉它就能自动增长了。)
3、重启mysql使设置生效。

  • Share/Bookmark
分类: mysql, zen-cart 标签: , ,