为了做一个关于数据库稳定性的实验,打算在Xen的DomU(Linux)中装一个MySQL,本以为一件很简单的事情,结果纠结了我两天!
开始是在Dom0中安装MySQL,非常顺利。接下来就是在DmoU中安装MySQL了,起先用如下方法:
1、下载MySQL的安装文件
安装MySQL需要下面两个文件:
MySQL-server-4.0.16-0.i386.rpm
MySQL-client-4.0.16-0.i386.rpm
下载地址为: www.mysql.com/downloads/,打开此网页,下拉网页找到“Linux x86 RPM downloads”项,找到“Server”和“Client programs”项,下载需要的上述两个rpm文件。
2、安装MySQL
rpm文件是Red Hat公司开发的软件安装包,rpm可让Linux在安装软件包时免除许多复杂的手续。该命令在安装时常用的参数是 �Civh ,其中i表示将安装指定的rmp软件包,V表示安装时的详细信息,h表示在安装期间出现“#”符号来显示目前的安装过程。这个符号将持续到安装完成后才停 止。
1)安装服务器端
在有两个rmp文件的目录下运行如下命令:
[root@test1 local]# rpm -ivh MySQL-server-4.0.16-0.i386.rpm
显示如下信息。
warning: MySQL-server-4.0.16-0.i386.rpm: V3 DSA signature: NOKEY, key ID 5072e1f5
Preparing... ########################################### [100%]
1:MySQL-server ########################################### [100%]
。。。。。。(省略显示)
/usr/bin/mysqladmin -u root password \'new-password\'
/usr/bin/mysqladmin -u root -h test1 password \'new-password\'
。。。。。。(省略显示)
Starting mysqld daemon with databases from /var/lib/mysql
如出现如上信息,服务端安装完毕。测试是否成功可运行netstat看Mysql端口是否打开,如打开表示服务已经启动,安装成功。Mysql默认的端口是3306。
[root@test1 local]# netstat -nat
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN
上面显示可以看出MySQL服务已经启动。
2)安装客户端
运行如下命令:
[root@test1 local]# rpm -ivh MySQL-client-4.0.16-0.i386.rpm
warning: MySQL-client-4.0.16-0.i386.rpm: V3 DSA signature: NOKEY, key ID 5072e1f5
Preparing... ########################################### [100%]
1:MySQL-client########################################### [100%]
显示安装完毕。
用下面的命令连接mysql,测试是否成功。
以上都没有什么问题,但是一旦输入mysql命令想要登录时,就告知 mysql“Access denied for user 'root'@'localhost'”
在网上看了解决方法:
# /etc/init.d/mysql stop
# mysqld_safe --user=mysql --skip-grant-tables --skip-networking &
# mysql -u root mysql
mysql> UPDATE user SET Password=PASSWORD('newpassword') where USER='root';
mysql> FLUSH PRIVILEGES;
mysql> quit
# /etc/init.d/mysql restart
# mysql -uroot -p
Enter password: <输入新设的密码newpassword>
mysql>
结果还是无法登陆!
然后试图用yum indtall mysql*(一定要是mysql*)来安装,过程倒是很简单,大概要安装35个包左右。(注意第一种方法启动MySQL服务名字是mysql,第二种MySQL服务的名字是mysqld)
可是还是不能正常登陆,几经周折之后,决定先在Dom0里面装好MySQL,然后用Dom0的文件系统做一个DomU的镜像,然后启动DomU,按照上面的方法设置好root用户的密码之后便可以远程登录到DomU的MySQL数据库了。
安装好之后作了如下测试:
用一个客户端往MySQL中不断插入数据,若突然用xm shutdown或是service mysqld stop来中断MySQL的话,数据可以完整的被插入(115011条);若用xm destroy来中断MySQL的话,则发现会有大量数据丢失(应插入:112069,实际插入28920)。