MySQL恢复中的几个问题解决方法

MySQL恢复中的几个问题解决方法,第1张

一、Can’t connect to MySQL server on ‘localhost’ (10061)
翻译:不能连接到 localhost 上的mysql
分析:这说明“localhost”计算机是存在的,但在这台机器上却没提供MySQL服务。
需要启动这台机器上的MySQL服务,如果机子负载太高没空相应请求也会产生这个错误。
解决:既然没有启动那就去启动这台机子的mysql。如果启动不成功,多数是因为你的myini配置的有问题。重新配置其即可。
如果觉得mysql负载异常,可以到mysql/bin 的目录下执行mysqladmin -uroot -p123 processlist来查看mysql当前的进程。
二、Unknown MySQL Server Host ‘localhosadst’ (11001)
翻译:未知的MySQL服务器 localhosadst
分析:服务器 localhosasdst 不存在。或者根本无法连接
解决:仔细检查自己论坛下面的 /configincphp 找到$dbhost重新设置为正确的mysql 服务器地址。
三、Access denied for user: ‘roota@localhost’ (Using password: YES)
翻译:用户 roota 访问 localhost 被拒绝(没有允许通过)
分析:造成这个错误一般数据库用户名和密码相对mysql服务器不正确
解决:仔细检查自己论坛下面的 /configincphp 找到$dbuser、$dbpw核实后重新设置保存即可。
四、Access denied for user: ‘red@localhost’ to database ‘newbbs’
翻译:用户 red 在localhost 服务器上没有权限 *** 作数据库newbbs
分析:这个提示和问题三是不同的。那个是在连接数据库的时候就被阻止了,而这个错误是在对数据库进行 *** 作时引起的。比如在select update等等。这个是因为该用户没有 *** 作数据库相应的权力。比如select 这个 *** 作在mysqluserSelect_priv里记录 Y 可以 *** 作N 不可以 *** 作。
解决:如果是自己的独立主机那么更新mysqluser 的相应用户记录,比如这里要更新的用户为red 。或者直接修改 /configincphp 为其配置一个具有对数据库 *** 作权限的用户
或者通过如下的命令来更新授权grant all privileges on dbname to ‘user’@’localhost’ identified by ‘password’
提示:更新了mysql库中的记录一定要重启mysql服务器才能使更新生效
FLUSH PRIVILEGES;
五、No Database Selected
翻译:没有数据库被选择上
分析:产生的原因有两种
configincphp 里面$dbname设置的不对。致使数据库根本不存在,所以在 $db->select_db($dbname); 时返回了false
和上面问题四是一样的,数据库用户没有select权限,同样会导致这样的错误。当你发现configincphp的设置没有任何问题,但还是提示这个错误,那一定就是这种情况了。
解决:对症下药
打开configincphp 找到$dbname核实重新配置并保存
同问题四的解决方法
六、Can’t open file: ‘xxx_forumsMYI’ (errno: 145)
翻译:不能打开xxx_forumsMYI
问题分析:
这种情况是不能打开 cdb_forumsMYI 造成的,引起这种情况可能的原因有:
1、服务器非正常关机,数据库所在空间已满,或一些其它未知的原因,对数据库表造成了损坏。
2、类 unix *** 作系统下直接将数据库文件拷贝移动会因为文件的属组问题而产生这个错误。
解决方法:
1、修复数据表
可以使用下面的两种方式修复数据表:(第一种方法仅适合独立主机用户)
1)使用 myisamchk ,MySQL 自带了专门用户数据表检查和修复的工具 —— myisamchk 。更改当前目录到 MySQL/bin 下面,一般情况下只有在这个下面才能运行 myisamchk 命令。常用的修复命令为:myisamchk -r 数据文件目录/数据表名MYI;
2)通过 phpMyAdmin 修复, phpMyAdmin 带有修复数据表的功能,进入到某一个表中后,点击“ *** 作”,在下方的“表维护”中点击“修复表”即可。
注意:以上两种修复方式在执行前一定要备份数据库。

主从复制出现:Slave_IO_Running: Connecting

> 1、修改MySQL配置文件
两台MySQL均如要开启binlog日志功能,开启方法:在MySQL配置文件[MySQLd]段中加上log-bin=MySQL-bin选项
两台MySQL的server-ID不能一样,默认情况下两台MySQL的serverID都是1,需将其中一台修改为2即可
2、将1921681201设为1921681202的主服务器
在1921681201上新建授权用户

解决方法一:
1、打开myini文件,找到default-storage-engine=InnoDB这一行,把它改成default-storage-engine=MyISAM;
2、删除在MySQL安装目录下的Data目录中的ib_logfile0和ib_logfile1;
3、找到在配置MySQL服务器时指定的InfoDB目录删除掉ibdata1
根据myini文件中:# INNODB Specific options innodb_data_home_dir="D:/";
4、重新启动MySQL的Service。
解决方法二:
把windows目录下,myini文件删除,重装mysql,服务启动成功。


-+-+-+-+-+-+-+-+-+-+-+-
-+-+mysql的主从配置+-+-
-+-+-+-+-+-+-+-+-+-+-+-
#############################################################################
常用命令
1安装一个mysqld服务
  mysqld  install  
2开启mysql服务        关闭mysql服务  
  net start mysql      net stop mysql
2开启一个 mysql 的 3307端口
  命令行 进入解压目录\bin目录下
   解压目录\bin> mysql -uroot  -p  -P3307 -h127001
-u 用户名
-p密码
-P端口
-h网址
#启动从库
Start slave
#停止从库
Stop slave
#############################################################################
开始
用一台电脑测试
先在本电脑上安装一个mysql(集成的也行)
解压文件
然后解压另一个mysql到电脑目录
》》》》》1
在解压目录创建一个mysqlini
把一下文档写进去配置一个端口号为3307
#mysqld
[mysqld]
port=3307
basedir=D:\mysqlsever         #D:\mysqlsever 改成你解压目录
datadir=D:\mysqlsever\data    #D:\mysqlsever 改成你解压目录
安装一个mysqld服务    mysqld  install
开启mysql服务         net start mysql
不能正常启动请查看配置
》》》》2
#主库3306
在命令行或者
grant 权限 on 数据库对象 to 用户
GRANT all privileges REPLICATION SLAVE,RELOAD,SUPER ON 
TO mysql_backup1@''
IDENTIFIED BY '123456'with grant option;
flush privileges;
》》》3
在主库运行   SHOW MASTER STATUS       //运行后查看File和Postion
如  File mysql-bin000002   Postion 120
在从库运行  
CHANGE MASTER TO master_host = '127001',
master_user = 'mysql_backup',
master_password = '123456',
master_log_file = 'mysql-bin000001',#看上面的File  从库对照主库写
master_log_pos = 4791;#看上面的Postion    从库对照主库写
如果报错就停止就重新运行
#启动从库
Start slave
#停止从库
Stop slave
在从库运行  Show slave status
Slave_IO_Running
Slave_SQL_Running
两个字段全部是是Yes基本上就成功了
测试
在主库上建立一个表  在从库上刷新
############################################################################

这个。。你要想玩主从,一台服务器没意义啊,好歹弄个虚拟机搭个mysql服务器也行啊
要真是就1台服务器就别弄主从了。。 如果2台或者2台以上的mysql 配置, 基本上就是在你config里写主库和从库的用户名和密码,地址等信息(或者写在apache配置里面 写成$ENV) 在你的数据调用类(通常叫做dbclassphp)里面自己做主从的各种方法就行了


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/12940349.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-29
下一篇 2023-05-29

发表评论

登录后才能评论

评论列表(0条)

保存