Home >Database >Mysql Tutorial >MYSQL启动与退出以及链接故障恢复_MySQL
1.服务器的启动和关闭
在Linux和windows平台下MySQL服务器的启动方式有很大不同,这里将分开介绍:
Linux平台:
Linux平台下,每一个进程都需由一个用户来运行,MySQL最好不要以root用户来运行。我们可创建一个mysql用户和mysql组,MySQL服务器程序目录和数据目录由这个用户和组所拥有,其它用户没有任何权限。以mysql用户来运行MySQL服务器。
% mysqld --user=mysql #即使以root用户执行该命令,MySQL数据库还是会与mysql用户ID关联。
为了使服务器在系统启动时自动以mysql用户运行,需配置my.cnf配置文件 ,把user=mysql包含在[mysqld]段中。
关闭服务器可用% mysql.server stop或% mysqladmin -u root -p shutdown
windows平台:
手动方式:直接运行c:/mysqld命令。
作为服务方式:运行c:/mysqld-nt --install命令,把mysqld-nt安装为windows的服务,此后,每当windows启动时,它就会自动运行。mysqld-nt是一个支持命名管道的MySQL服务器。运行c:/mysqld-nt --remove可把服务删除。手动启动关闭服务的方法是运行c:/net start mysql和c:/net stop mysql命令。
2. 连接故障恢复
当由于误删mysql套接字时(/tmp/mysql.sock),我们就不能通过套接字连接服务器。这时我们可通过tcp/ip来连接服务器,要建立一个tcp/ip连接,需用127.0.0.1代替locahost作为-h参数的值来连接服务器。如:
% mysqladmin -h 127.0.0.1 -u root -p shutdown #关闭服务器再重启会重建套接字
当我们因为忘记root用户密码而不能连接服务器时,重设置密码的步骤如:
用 % kill -TERM PID关闭服务器,用-TERM信息可使服务器在关闭前把内存中的数据写入磁盘。如果服务器没有响应,我们可用% kill -9 PID来强制删除进程,但不建议这样做。这时内存中的数据不会写入磁盘,造成数据不完整。如果你是用mysql_safe脚本启动MySQL服务器的,这个脚本会监控服务器的运行情况并在它被终止时重启服务器,所以如需关闭服务器,要先终止该进程,然后再真正终止mysqld进程。
接着用--skip_grant-tables启动服务器。这时MySQL服务器将不使用权限表对连接操作进行验证。你就可在不提供root密码的情况下连接上服务器,并获得root的权限。这样你就可用上面介绍的修改密码的方法重设root用户的密码。注意:连接上服务器后,要马上执行flush privileges命令,使权限表读入内存并生效,以阻止其他的连接。该语句还重新激活grant语句,在MySQL服务器不使用权限表时,grant语句被禁用。
修改完root用户密码后,我们就可关闭服务器并重启使所有配置正常运作。