数据库同步工具
sqlserver,Mysql数据同步软件

[centos同步数据库]【MySQL报错】ERROR 1558 (HY000): Column count of mysql.user is wrong. Expected 43, found 39.

购买事宜请联系QQ:1793040

主:192.168.2.222从:192.168.2.223

一:装置mysql

从最新版本的linux系统开端,默许的Mariadb而不是mysql这里依旧以mysql为例进行展示

1先检查系统是否装有mysql

rpm-qa|grepmysql

这里前去空值,分析没有装置

2下载mysqlrepo源

#wgethttp://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm

装置mysql-community-release-el7-5.noarch.rpm包

#sudorpm-ivhmysql-community-release-el7-5.noarch.rpm

安装这个包后,会获得两个mysqlyumrepo源:/etc/yum.repos.d/mysql-community.repo/etc/yum.repos.d/mysql-community-source.repo

3装置mysql

#sudoyuminstalmysql-serv-y

根据步骤安装就可以了不过安装完成后,没有暗码,需要重置密码。

安装后再次查看mysql

假设报错,概况含有

Error:Package:mysql-community-libs-5.6.35-2.el7.x86_64mysql56-commun

Requires:libc.so.6GLIBC_2.1764bit

Error:Package:mysql-community-server-5.6.35-2.el7.x86_64mysql56-commun

Requires:libc.so.6GLIBC_2.1764bit

Error:Package:mysql-community-server-5.6.35-2.el7.x86_64mysql56-commun

Requires:systemd

Error:Package:mysql-community-server-5.6.35-2.el7.x86_64mysql56-commun

Requires:libstdc++.so.6GLIBCXX_3.4.1564bit

Error:Package:mysql-community-client-5.6.35-2.el7.x86_64mysql56-commun

Requires:libc.so.6GLIBC_2.1764bit

Ycouldtryus–skip-brokentoworkaroundtheproblem

Ycouldtryrunning:rpm-Va–nofil–nodigest

处理:

#yuminstalglibc.i686#yumlistlibstdc++*

4重置密码

重置密码前,首先要登录

#mysql-uroot

登时有可以报这样的错:ERROR2002HY000:CantconnecttolocalMySQLserverthroughsocket/var/lib/mysql/mysql.sock2缘故原由是/var/lib/mysql会晤权限麻烦。上面的命令把/var/lib/mysql具备者改为当前用户:

#sudochown-Ropenscanner:openscann/var/lib/mysql

假设报chown:有效的使用者:”openscanner:openscanner”毛病,更换号令,并用ll查察途径权限列表

chownroot/var/lib/mysql/

ll

附:

① 变更文档具备者 chown

[root@linux~]#chown账号称号 文档或目录

② 窜改文档的使用者组用命令 chgrp

[root@linux~]#chgrp组名 文档或目录

默认只是改正当前级别的权限。假设子途径也要递归需要加R参数③ 对于途径权限改正以后。;

连同子目录下的统统文档、路径Chown-R:截至递归.

而后,重启服务:

servicmysqldrestart

接下来登重置密码:

mysql-uroot

mysql>usemysql;

mysql>updatusersetpassword=password\’123456\’whereuser=\’root\’;

mysql>exit;

重启mysql效力后才生效#servicmysqldrestart

需要时参与以下命令行,为root添加远程毗连的才能。链接密码为 root不包含双引号)

mysql>GRA NTALLPRIVILEGESON*.*TOroot@”%”IDENTIFIEDBY”root”;

报错

执行以下命令即可普通执行号令网上查找原因说说因为升级不当招致。

mysql_upgrad-uroot-p123456

6查询数据库编码规则,确保是UTF-8

showvarilike”%char%”;

需要改正编码划定规矩为UTF-8导入数据库sql时分,请确保sql文档为utf8编码

开始mysql命令行后 输出

setnamesutf8;

探测数据库数据)

再开端数据库ustest;

导入sql剧本 sourctest.sql;

7凋谢3306端口号

侧重启:firewalld防火墙(centos-7运行号令.

firewall-cmd–zone=public–add-port=3306/tcp–permanentfirewall-cmd–reload

ipt防火墙(centos6.5及其从前)运行号令

vim/etc/sysconfig/iptables

文档内添加下面命令行,然后重启

-A INPUT-ptcp-mstate–stateNEW-mtcp–dport3306-jA CCEPT

#serviciptablrestart

外部链接访问效果(一般成立sql数据库和数据表,建议通过远程链接控制,直观易操作)

附:

呈现Warning:Usingapasswordonthecommandlineinterfaccanbeinsecure.毛病

第一种方法、改正数据库设备文档

这个要看我数据库的设置的有些是/etc/my.cnf有些是/etc/my.con1需要改正数据库设备文档。f

需求在[client]部分添加剧本:

  • socket=/var/lib/mysql/mysql.sockmysql.sock文档地位 host=localhostuser=数据库使用者password=\’数据库暗码\’
这里参数要修改成我本人的

2采取命令导出和导入数据库

假设接纳详解使用mysqldump命令备份还原MySQL数据用法收拾整顿http://www.laozuo.org/5047.html讲解的方法也是答应利用的当然依旧有错误提示,实在在这个时分。但是数据库还是答应导出的您肯定和老左一样是追求细节的人,一点点费事都不能有,但我答应用下面的命令导出和导入,就没有缺点提醒。

导出数据库

mysqldump–defaults-extra-file=/etc/my.cnfdatabas>database.sql

导入数据库

mysql–defaults-extra-file=/etc/my.cnfdatabas

这里我答应看到下面的命令和以前常用的快速导入和导入命令有所差别了需要加载我设置的MYSQL设备文档,这个”/etc/my.cnf要根据我实践的路子修正。用这样的命令导出备份和导入是没有缺点提醒的

登陆数据库

#mysql-uroot-p

第二种方法、操纵mysql_config_editor

1装备加密形式

mysql_config_editorset–login-path=local–host=localhost–user=db_user–password

db_user需要改正成我自己数据库使用者名的回车当前会提示我输入数据库暗码,仍是输出。

2执行备份

mysqldump-udb_user-pInsecurePasswordmy_databas|gzip>backup.tar.gz

-udb_user

-p.InsecurePassword中心的.记得去掉

按照我数据动静改正使用者和使用者名和数据库暗码,执行备份,这里老左测试还是有错误提示,但数据库是答应备份的

修正MySQLroot使用者的暗码:

mysql-urootmysql

mysql>usmysql;

mysql>descuser;

mysql>GRA NTALLPRIVILEGESON.TOroot@%IDENTIFIEDBYroot;//为root添加远程毗连的才能。

mysql>updusersetPassword=passwordxxxxxxwhereUser=root;

User,mysql>selectHost.PasswordfromuserwhereUser=root;

mysql>flushprivileges;

mysql>exit;

重新登:mysql-uroot-p

deletfrommysql.uswhereuser=;← 删除匿名用户

hostfrommysql.user;← 查察使用者消息selectuser.

二:master设备文档

vim/etc/my.cnf

[root@pythonmysql]#vim/etc/my.cnf#Foradviconhowtochangsetpleassee#http://dev.mysql.com/doc/refman/5.6/en/serverconfigurationdefaults.html[mysqld]##Removlead#andsettotheamountofRA Mforthemostimportdata#cachinMySQL.Startat70%oftotalRA Mfordedicserver,else10%.#innodb_buffer_pool_s=128M##Removlead#toturnonaveriimportdataintegroption:logging#changtothebinarylogbetweenbackups.#log_bin##Removlead#tosetoptionmainliusforreportservers.#TheserverdefaultarfasterfortransactandfastSELECTs.#Adjustsizeasneeded,experitofindtheoptimvalues.#join_buffer_s=128M#sort_buffer_s=2M#read_rnd_buffer_s=2Mdatadir=/var/lib/mysqlsocket=/var/lib/mysql/mysql.sock#MariaDB/etc/my.cnf.d/server.cnf#Disablsymboliclinkisrecommendtopreventassortsecurriskssymboliclinks=0logbin=masterbinserverid=1binlogdodb=test##同步cacti此处封闭的话,就是除不允许的其它库均同步。#binlogignoredb=mysql##不同步mysql库,以下同上#binlogignoredb=test#binlogignoredb=information_schema#RecommendinstandardMySQLsetupsql_mode=NO_ENGINE_SUBSTITUTION,SPICT_PA NS_TA BLES[mysqld_safe]logerror=/var/log/mysqld.logpidfile=/var/run/mysqld/mysqld.pid

注释[一定要加到mysqld上面!]

重启数据库后

showvariabllike\’%log_bin%\’;检察log-bin否开启)

serverid=1#master端ID号logbin=mysqlbin#日志路子及文件名#binlogdodb=cacti#同步cacti此处封闭的话,就是除不允许的其它库均同步。binlogignoredb=mysql#不同步mysql库,以下同上binlogignoredb=testbinlogignoredb=information_schema

为从库添加一个同步用的使用者

开始mysql

mysql>grantreplicationslaveon*.*tosync@\’192.168.1.239\’identifiby\’123456\’;mysql>flushprivileges;

从库第一次要导入用的导出之前要对数据库截至锁表,生成一个备份文件。多么答应制止他人在备份时对数据库截至写操作。留意:当一个会话终了时它锁的表会解除锁表。

    先开一个会话登入数据库落伍行锁表

mysql>flushtableswithreadlock;
    再开一个会话截至数据库备份,留意:mysql_bin_dirMysql命令所在路径

mysql_bin_dir/mysqldump–all-databas–E-uroot-p>backup.sql
    马上重启数据库,如许在记主库的Posit会比较方便。

#servicmysqlrestart
    查察主库的File和Position

    .mysql>showmasterstatus;

slave设置

serverid=2relaylog=relaybinreadonly=onreplicatedodb=jason_test

注释

server-id=2值唯一

relay-log=relay-bin纪录主从同步数据多日志文件

read-only=on从库装备只读权限

replicate-do-db=test拟订要同步多数据库

出格是上面有Master不的数据,用Master端数据库复原Slave之前最好Slave重新安装过的多么能减少不少麻烦。如许在回复复兴时是不会被删除的假设不是刚重装过的那就把原来的数据库先删除一下。

#mysql_bin_dir/mysql-uroot-p#mysql-uroot-p

设备毗邻主服务器的消息(留神标记

mysql>startslave;mysql>showslavestatusG;

mysql>stopslave;

mysql>changmasterto

->master_log_pos=120;

mysql>startslave;

mysql>showslavestatusG;查察从效力器状态)

mysql>showslavestatuG;***************************1.row***************************Slave_IO_State:WaitformastertosendeventMaster_Host:192.168.2.222Master_User:testMaster_Port:3306Connect_Retry:60Master_Log_File:masterbin.000001Read_Master_Log_Pos:120Relay_Log_File:relaybin.000002Relay_Log_Pos:284Relay_Master_Log_File:masterbin.000001Slave_IO_Running:YesSlave_SQL_Running:YesReplicate_Do_DB:jason_testReplicate_Ignore_DB:Replicate_Do_Table:Replicate_Ignore_Table:Replicate_Wild_Do_Table:Replicate_Wild_Ignore_Table:Last_Errno:0Last_Error:Skip_Counter:0Exec_Master_Log_Pos:120Relay_Log_Space:451Until_Condition:NoneUntil_Log_File:Until_Log_Pos:0Master_SSL_A llowed:NoMaster_SSL_CA _File:Master_SSL_CA _Path:Master_SSL_Cert:Master_SSL_Cipher:Master_SSL_Key:Seconds_Behind_Master:0Master_SSL_Verify_Server_Cert:NoLast_IO_Errno:0Last_IO_Error:Last_SQL_Errno:0Last_SQL_Error:Replicate_Ignore_Server_Ids:Master_Server_Id:1Master_UUID:f0d10793914411e890cd08002709e8efMaster_Info_File:/var/lib/mysql/master.infoSQL_Delay:0SQL_Remaining_Delay:NULLSlave_SQL_Running_State:Slavehareadallrelailog;waitfortheslaveI/OthreadtoupdateitMaster_Retry_Count:86400Master_Bind:Last_IO_Error_Timestamp:Last_SQL_Error_Timestamp:Master_SSL_Crl:Master_SSL_Crlpath:Retrieved_Gtid_Set:Executed_Gtid_Set:Auto_Position:01rowinset0.00secERROR:Noquerispecified

假设有任一个显示NO,查察下面的Slave_IO_Running:Ye和Slave_SQL_Running:Ye2个都为ye则证明主从同步正常。则证明同步有问题。答应查察数据库日志文档,里面底子上会抛出出错误之处,根据缺点一步一步排查,底子上都可以解决的

然后看看从服务器的数据接下来就可以在主数据库上删减修改。

未经允许不得转载:数据库同步软件|Mysql数据同步软件|sqlserver数据库同步工具|异构同步 » [centos同步数据库]【MySQL报错】ERROR 1558 (HY000): Column count of mysql.user is wrong. Expected 43, found 39.

分享到:更多 ()

syncnavigator 8.6.2 企业版

联系我们联系我们