Mac Nodejs连接MySQL的一系列问题

问题1:

Error: connect ECONNREFUSED 127.0.0.1:3306 at TCPConnectWrap.afterConnect ...

一番谷歌,解决方法大概有这么几种:

  1. 你丫以为不用装 MySQL 就能跑了么?快去装数据库!
  2. 你数据库运行了么你?赶紧 /etc/init.d/mysqld start 运行起来
  3. 端口写错了
  4. 你是不是开启了 skip-networking 这个选项?Remove it !

然后发现,哦,我是第一个问题。我以为在终端运行了

node install mysql --save

就可以了,Mac系统现在默认不安装MySQL,需要自己下载安装。
MySQL 下载
我下载的是MySQL的-8.0.15-macos10.14-x86_64.dmg


这个网址翻墙会比较快
之后下载成功后,一系列傻瓜式点击下一步。然后就出现了问题2。

问题2

node ER_NOT_SUPPORTED_AUTH_MODE: Client does not support authentication protocol requested by server; consider upgrading MySQL client

解决方法:安装的时候修改密码强度:默认的为强密码模式,手动选择下面一个宽松模式
Mac机修改:在系统偏好设置中点击MySql,然后点击初始化。

选择“Use Legacy Password Encryption”,点击OK即可。

问题3

Mac找不到mysql命令
执行mysql -u root -p命令,

  1. 在home下的.bash_profile中添加export PATH=${PATH}:/usr/local/mysql/bin(确认路径正确)
  2. 然后调用source ~/.bash_profile使配置生效
  3. 这时如果还有问题:Access denied for user 'gemo'@'localhost' (using password: NO)
    则重启Mysql服务即可。

执行命令之后,输入安装时设置的密码123456(我自己连接数据库的密码)。即进入MySQL编辑界面。在这个界面可以进行数据库的增删改查操作。

问题4

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp...

这个是查之前的问题,在nodejs代码创建数据库连接中添加了socket字段导致的,我删除之后就可以了。

问题5

mysql connnected
[SELECT ERROR] - ER_NO_DB_ERROR: No database selected

需要创建数据库test。mysql -u root -p进入数据库操作界面创建新的数据库test即可。

问题6

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'show databases' at line 2

对于像我这样的新手来说,MySQL数据库,在命令行使用sql语句进行建库,查库,建表,查表。。。时,MySQL 这样报错。当我知道报错原因之后,就很想笑了。

其实这个问题就是语法上的错误。回头仔细检查一下语法编写,然后在执行命令就好了。

例如我这里,其实是输入了一条命令,因为没有这个命令的,导致报错。

解决办法:


输入一行,而且末尾加上反引号即可。

在MySQL中,为了区分MySQL的关键字与普通字符,MySQL引入了一个反引号,注意检查编写sql,保证没有语法错误就OK了

注意:退出一条命令:control+C

问题7

ER_ACCESS_DENIED_ERROR: Access denied for user 'root'@'localhost' (using password:YES

之前还遇到这个问题,是因为我在终端直接进行mysql的相关命令。mysql命令需要进入MySQL命令界面才可以。mysql -u root -p命令进入。


你可能感兴趣的:(Mac Nodejs连接MySQL的一系列问题)