标签 MySQL 下的文章

忘记mysql root密码

备忘一下。

以windows平台、xampp 1.7.3\ MySQL 5.1.41 为例

停掉当前的mysqld服务,也可以直接杀死mysqld.exe进程。

开个cmd,运行 mysqld --safe-mode --skip-grant-tables

再开个cmd, 运行mysql , 因为当前进入的是安全模式,所以不需要任何密码,直接进。

mysql>update user set password=password('new_password') where user='root';

mysql>quit

关闭安全模式mysqld,正常启动mysql,root的密码已经修改为 new_password

乘今天太阳热huaoer,晒一晒,免得发霉。

安装使用mysql操作我网站的数据库

wordpress又出了点问题。发布文章的时候没有显示在我的主页上。但是在文章的分类中还是可以查看到。所以想使用mysql把数据库重新做过。没有办法 谁叫我是菜鸟呢。 安装了yum就没有这样的费力了。

[root@jlinux ~]# yum install mysql-client
Loading "installonlyn" plugin
Existing lock /var/run/yum.pid: another copy is running. Aborting.

很多的时候都会遇到这样的情况。原因很简单,yum只允许同一时间内只能有一个进程运行。原理知道了,我就

[root@jlinux ~]# rm -f /var/run/yum.pid

把/var/run/yum.pid删除了,这样就可以使用了。所以以后使用yum的时候一定要正确的退出 而不是ctrl+c强制退出。

[root@jlinux ~]# yum install mysql
Loading "installonlyn" plugin
Setting up Install Process
Setting up repositories
livna
[1/4]
core [2/4]
updates [3/4]
extras [4/4]
Reading repository metadata in from local files
Parsing package install arguments
Resolving Dependencies
–> Populating transaction set with selected packages. Please wait.
—> Downloading header for mysql to pack into transaction set.
mysql-5.0.27-1.fc5.i386.r 100% |=========================| 35 kB 00:01
—> Package mysql.i386 0:5.0.27-1.fc5 set to be updated
–> Running transaction check
–> Processing Dependency: perl(DBI) for package: mysql
–> Restarting Dependency Resolution with new changes.
–> Populating transaction set with selected packages. Please wait.
—> Downloading header for perl-DBI to pack into transaction set.
perl-DBI-1.52-1.fc5.i386. 100% |=========================| 16 kB 00:00
—> Package perl-DBI.i386 0:1.52-1.fc5 set to be updated
–> Running transaction check

Dependencies Resolved

=============================================================================
Package Arch Version Repository Size
=============================================================================
Installing:
mysql i386 5.0.27-1.fc5 updates 3.3 M
Installing for dependencies:
perl-DBI i386 1.52-1.fc5 updates 605 k

Transaction Summary
=============================================================================
Install 2 Package(s)
Update 0 Package(s)
Remove 0 Package(s)
Total download size: 3.9 M
Is this ok [y/N]: y
Downloading Packages:
(1/2): mysql-5.0.27-1.fc5 100% |=========================| 1.8 MB 02:18
http://ftp.iij.ad.jp/pub/linux/fedora/core/updates/5/i386/mysql-5.0.27-1.fc5.i386.rpm: [Errno 4] Socket Error: (11, '\xe8\xb5\x84\xe6\xba\x90\xe6\x9a\x82\xe6\x97\xb6\xe4\xb8\x8d\xe5\x8f\xaf\xe7\x94\xa8')
Trying other mirror.
(1/2): mysql-5.0.27-1.fc5 100% |=========================| 3.3 MB 06:17
(2/2): perl-DBI-1.52-1.fc 100% |=========================| 605 kB 01:37

下载了 mysql and perl-dbi两个包。不知道是什么原因下载了这两个包,但是没有安装。 我就cd到yum的cache目录/var/cache/yum。我的Fedora 5上面有core、extras、fedora-xgl、livna、updates 这样的目录。core就是必要的软件。extras是额外的、附加的意思。feodra-xgl这个是我以前安装xgl桌面的时候建立的。livna有很多使用的软件 updates就是mysql的包的存放的目录了。

[root@jlinux packages]# pwd
/var/cache/yum/updates/packages
[root@jlinux packages]# rpm -ivh mysql-5.0.27-1.fc5.i386.rpm
Preparing… ########################################### [100%]
package mysql-5.0.27-1.fc5 is already installed
[root@jlinux packages]# rpm -ivh perl-DBI-1.52-1.fc5.i386.rpm
Preparing… ########################################### [100%]
package perl-DBI-1.52-1.fc5 is already installed

安装这两个包,但是安装mysql并没有成功。

#mysql -h jlinux -u sq_tunpishuang -p

连接的时候显示

[root@jlinux ~]# mysql -h jlinux.cn -u sq_tunpishuang -p
Enter password:
ERROR 1045 (28000): Access denied for user 'sq_tunpishuang'@'222.183.62.123' (using password: YES)

看到以下的东西就是我们已经成功的进入的MYSQL的 数据库系统。真的是很对不起大家。我用的空间是windows下面的mysql.呵呵。linux那些都很贵,不是linux的优点是成本低吗?其实不是这样,Linux的发行版确实是很便宜。但是由于linux的复杂度高,所以网管的工资高了费用当然就高了哦。

下面是连接成功的样子 :

[root@jlinux ~]# mysql -h 125.65.81.5 -u sq_tunpishuang -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 77045 to server version: 5.2.3-falcon-alpha-communit y-nt

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql>
——————————————————–

[root@jlinux ~]# mysql -h jlinux.cn -u sq_tunpishuang -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 77149 to server version: 5.2.3-falcon-alpha-community-nt

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> use sq_tunpishuang
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> show tables;
+————————–+
| Tables_in_sq_tunpishuang |
+————————–+
| wp_categories |
| wp_comments |
| wp_link2cat |
| wp_links |
| wp_options |
| wp_post2cat |
| wp_postmeta |
| wp_posts |
| wp_sticky |
| wp_usermeta |
| wp_users |
+————————–+
11 rows in set (0.05 sec)

可以看到很多的表格了,呵呵。wp_表示我用的是wordpress的php程序,然后就开始重新做站了。

ERROR 1045 (28000): Access denied for user

今天第一次做了就是把我的网站的所有的数据库都删除。因为我上次也说过了把WORDPRESS作为网站的主程序。其实我想了一想真的是WORDPRESS的灵活性真的是很强。我把http://jlinux.cn/blog 的程序的东西都删除然后下载了一个wordpress2.2的最新的中文版。其实也不叫中文版。是一个汉化版吧。因为wordpress的官方网站(http://wordpress.com)好像没有语言包之类的。都是国内的一些牛人做的汉化版。网站的地址是http://wordpress.org.cn 然后花了N多的时间用FlashFxp上传。文件不大但是很多。真实羡慕那些可以在线解压缩的空间,真是棒极了。呵呵。最后上传后打开http://jlinux.cn/index.php出现的东西让我很吃惊。简单的最原始的东西。随便点一个连接也是打不开了。原因很简单,我以前的数据库sq_tunpishuang还没有删除上面的东西还是以http://jlinux.cn/blog的链接来展示的。然后下一步也就确定了就是删除sq_tunpishuang这个库。开始在LINUX下没有上网成功。所以就用了mysql的win32版。在http://mysql.cn下载了最新的5.0的版本。问题就来了。连接的命令是:

mysql -h jlinux.cn -u sq_tunpishuang -p (密码)

结果显示这样的提示:

C:\mysql\bin>mysql ERROR 1045 (28000): Access denied for user <'ODBC'@'xxxxx'> (using password: NO)

xxxxx是我现在用的机器的IP。这样当然是无法连接。

我的解决的方法是使用视窗界面的EngInSite MySQL Client客户端

EngInSite MySQL Client客户端

ADD CONNECT !分别添上Friendly name。随便你填写什么。HOSTNAME就是你要连接的mysql的服务器的域名或者是IP。然后PORT一般是默认的3306。Database是你想要进入哪个你想操作的数据库。 username password :分别填上你的用户名和密码。就连接上了。把我的sq_tunpishuang清空这样我的wordpress就又可以使用了。

MySQL 5.6从*.ibd文件恢复数据

MySQL我最常用的两种数据引擎是MyISAM和InnoDB。最近在本地WAMP环境下安装了WordPress博客。某一天发现无法登录WordPress后台了,直接跳转到WordPress的安装页面。看来是PHP无法连接MySQL数据库造成的。我继续用phpMyAdmin、SQLyog等客户端工具连接数据库查询WordPress表数据都返回一句法文错误信息,翻译过来的意思是“该数据表不存在”。打开 D:\wamp\bin\mysql\mysql5.6.17\my.ini配置文件,找到lc-messages=fr_FR修改为lc-messages=en_US 保存信息变为看得懂的英文。但是奇怪的是show tables 显示出来有的表,但是运行select全部报错table doesn't exist.

又打开Windows事件查看器(eventvwr.msc),筛选事件源为MySQL,发现了大量这种的警告信息:

InnoDB: Cannot open table wordpress/wp_posts from the internal data dictionary of InnoDB though the .frm file for the table exists. See http://dev.mysql.com/doc/refman/5.6/en/innodb-troubleshooting.html for how you can resolve the problem.

经过两天两夜的大量Gooogle,发现此文件充斥着网络,貌似是一个普遍问题,而且是一个对MySQL新手来说容易犯的错误。MyISAM数据表.frm可以从一个服务器移动到另外一个服务器,而InnoDB数据引擎则不能直接移动,否则会出现tablespace不一致的问题。这种情况下日志会这种报错:

InnoDB: in InnoDB data dictionary has tablespace id N,
InnoDB: but tablespace with that id or name does not exist. Have
InnoDB: you deleted or moved .ibd files?
InnoDB: This may also be a table created with CREATE TEMPORARY TABLE
InnoDB: whose .ibd and .frm files MySQL automatically removed, but the
InnoDB: table still exists in the InnoDB internal data dictionary.

了解了这么多,中文网络里面的一般做法就是修改my.ini,加上

[mysqld]
innodb_force_recovery = 1

innodb_force_recovery的值可以是1、2、3、4、5、6,具体的含义参见:https://dev.mysql.com/doc/refman/5.0/en/forcing-innodb-recovery.html。但是我尝试了这样的方法还是找不到数据表。看来从MySQL服务器配置上恢复数据的方法走不通。我想尝试直接通过InnoDB的数据文件ibdata1、ib_logfile0、ib_logfile1,还是wordpress目录下的wp_posts.frm和wp_posts.ibd文件直接恢复。用Winhex分辨查看了以上文件,发现wp_posts.ibd里面有明文的数据内容(记得将Winhex的Charset设置为UTF-8)。然后Google到了从ibd文件恢复数据的方法。此方法略微“复杂”,以下我详细的写一下:

首选需要Linux系统,我这里安装的是最新的Debian 8.0 Jessie,直接通过apt-get加软件库来安装

加入apt签名:

apt-key adv --keyserver keys.gnupg.net --recv-keys 1C4CBDCDCD2EFD2A

将以下内容添加到/etc/apt/sources.list,VERSION是版本代码,比如wheezy ,jessie等。

deb http://repo.percona.com/apt VERSION main deb-src http://repo.percona.com/apt VERSION main

更新一下: $ apt-get update

安装Percona Server、Client

$ apt-get install percona-server-server-5.6 percona-server-client-5.6

注意:Percona Server不能和MySQL Server同时共存,安装Percona前请先移除MySQL Serer。

安装完成后登录MySQL

mysql -uroot -ppassword

创建一个数据库

mysql> create database tunps_com; mysql> use tunps_com;

将我丢失数据的WordPress数据库表结构SQL文件导到刚cai