我正在使用Ubuntu Lucid Lynx(10.04),并通过aptitude安装了MySQL服务器。 安装程序自动添加一个名为mysql的用户(它在开始时不存在于/ etc / passwd文件中,并且在安装后存在),并启动了MySQL服务器。
然后我需要修改my.cnf(为了能够远程访问MySQL服务器)。 当我重新启动MySQL服务器
$ sudo /etc/init.d/mysql重新启动
它挂起。 但是在另一个terminal上通过“top”命令显示进程表明MySQL服务器正在以root用户运行。 但my.cnf明确规定
user = mysql
然后我试了一下
$ sudo服务mysql重启
结果更糟糕。 它根本没有启动MySQL服务器。
据我所知,在以前的Ubuntu版本中,我从来没有遇到这样的问题。
所以我的问题是:
如何在Ubuntu Lucid Lynx(10.04)中使用名为mysql的用户启动MySQL服务器?
在Ubuntu中启动MySQL服务器的最可靠的方法是什么?Lucid Lynx(10.04),
/etc/init.d/mysql启动
要么
服务mysql启动
要么
启动mysql
有什么区别?
先谢谢你。
忠利
/etc/init.d/xxxx start用于使用SysV init脚本启动服务。 Ubuntu使用新手而不是SysV init,并且init脚本正在转换为本地新贵作业。 通常转换作业的初始化脚本会显示警告并调用新手 。
start xxxx与使用upstart的服务一起使用,并且不能与使用SysV init的服务一起使用。
service xxxx start自动select正确的,所以总是使用服务是安全的
据我所知,MySQL已经转换到10.04使用新贵了
谢谢Florian和user46528,
根据Florian的回答,我开始只使用“服务mysql启动”。
然后,根据user46528的答案,我开始调查这个问题。
简而言之,问题是在my.cnf中设置绑定地址到服务器的IP地址。
我发现的关键问题是:
如果使用Amazon EC2,则必须将bind-address设置为私有IP地址。
一旦“服务mysql启动”失败,因为Ubuntu Lucid Lynx中my.cnf中的bind-address问题,无论如何解决它,它都会一直挂起。 我需要将绑定地址设置为正确的IP地址并重启Ubuntu。
更详细的解释是:
我正在使用Amazon EC2,它具有每个实例的公有IP地址和专用IP地址,在我的例子中是Ubuntu Lucid Lynx实例。
使用my.cnf中的默认绑定地址设置(bind-address = 127.0.0.1(localhost),“service mysql stop”和“service mysql start”)。
在my.cnf中,我将绑定地址更改为Amazon EC2公共IP地址。 然后“服务MySQL停止”工作,但“服务MySQL启动”挂起。
在/var/log/mysql/error.log中,我看到“[ERROR]无法启动服务器:绑定TCP / IP端口:无法分配请求的地址”。
在my.cnf中,我将绑定地址更改为Amazon EC2私有IP地址。 然后这两个“服务MySQL停止”和“服务MySQL启动”挂起。
在my.cnf中,我将绑定地址更改回默认的127.0.0.1。 仍然“服务MySQL停止”和“服务MySQL启动”挂起。
在my.cnf中,我将绑定地址更改为Amazon EC2私有IP地址。 然后我重新启动Linux服务器(通过Amazon EC2重新启动命令)。 然后,MySQL服务器用用户名mysql正确启动。
“sudo netstat -na”显示了具有状态“LISTEN”的私有IP地址的端口3306(MySQL服务器的端口)。
通过“telnet private-ip 3306”从其他Amazon EC2实例访问端口表示已连接。
再次感谢您的帮助。 没有他们,我无法解决这个问题。
真诚的Tadatoshi
如果它没有启动,即ps ax | grep mysql不会显示safe_mysqld和mysqld正在运行,请查看/var/lib/mysql/hostname.err(其中hostname是您计算机的主机名),它有一个详细的日志。 重启默认的软件包会停止,启动,但是,我不知道是否mysqld实际上并没有停止。
/etc/init.d/mysql停止
ps ax | grep mysql(确保没有进程正在运行)
/etc/init.d/mysql启动
现在,如果您正在查看进程,safe_mysqld以root身份运行,mysqld进程以mysql身份运行。 如果mysqld崩溃,safe_mysqld循环并尝试重新启动mysql。 您看到以root身份运行的进程是safe_mysqld还是mysqld?
默认的my.cnf表示port = 3306和bind-address = 127.0.0.1 。 如果您没有configuration回送接口,则该绑定将失败。
要创build一个回送接口:
ifconfig lo up 127.0.0.1