MySQL 问题整理
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 // 卸载服务