MySQL 问题整理
启动报错:ERROR 2003 (HY000): Can’t connect to MySQL server on ‘localhost’ (10061)
登录 MySQL
的主机时,打开 cmd 命令行工具,执行命令 mysql -uroot -p
,出现如下错误:
ERROR 2003 (HY000): Can’t connect to MySQL server on ‘localhost’ (10061)
解决方法:
在计算机管理中找到【服务】(或者直接在运行中输入 services.msc
按回车直接打开服务窗口),在服务检查 MySQL
服务是否存在。
如果不存在使用 mysqld -install
安装服务。已经安装了 MySQL
服务,则会提示 The service already exists
。
安装服务后,点启动服务就会解决此问题。还可以通过命令启动 MySQL
服务。
net start mysql // 启动服务
net stop mysql // 停止服务
MySQL 无法启动 服务没有报告任何错误
启动 MySQL
服务时,没有报告任何错误。配置完 my.ini
(自己的mysql配置文件)后不能自己创建一个 data
文件夹。
配置完 datadir
属性后觉得这个存储数据的文件夹路径没有呀,自己动手建一个呗。错就错在这里,不能动手建,你自己动手建的 data
文件夹里怎么可能有mysql启动所需要的表结构配置文件呢。
解决方法:
先在 MySQL
的 bin
目录下执行 mysqld --initialize-insecure
命令。
mysqld --initialize-insecure
or
.\mysqld.exe --initialize-insecure // windwos
第一次执行这个命令会等待的时间稍微长了一些,并且控制台没有任何返回结果。可以看到 mysql
的根目录下会多出一个 data
文件夹,里面自动生成了一些文件。然后启动 MySQL
服务就正常了。
注意:没有先执行 mysqld --initialize-insecure
,而是先执行 net start mysql
。结果会启动失败。mysql
会自动创建一个 data
文件夹,并在里面初始化一些文件,在再次执行 mysqld -initialize
的时候并没有把 data
文件夹删除。
此时的解决方案是:删除 data
文件夹,然后执行 mysqld -initialize
,再启动 mysql
。
ERROR 1045 Access denied for user ‘xxx’ NO
mysql
安装完后,输入 mysql
或者 mysql -hlocalhost -uroot -p
出现 ERROR 1045 Access denied for user 'xxx' NO
错误。
原因是新版的 mysql
为了安全性,默认是有密码的。
解决方法:
mysql
默认安装会有密码生成,密码文件直接写在 log-error
日志文件中(在5.6版本中是放在 root/.mysql_secret
文件里,更加隐蔽,不熟悉的话可能会无所适从),MySQL5.7
在安装完后,第一次启动时,会在 root
目录下生产一个随机的密码,文件名为 mysql_secret
。
登录时需要用随机密码登录,然后通过以下命令修改密码
SET PASSWORD = PASSWORD('new password')
服务命令
安装服务和卸载服务命令
mysqld -install // 安装服务
mysqld -remove mysql // 卸载服务