前言
在学习node框架egg.js过程中,对数据库的操作是必须的,我这里选择的是mysql数据库。在使用egg.js过程中,使用egg-mysql插件来处理是没有什么问题的,这里就不多说了。这里我选择使用egg-sequelize插件来对数据库进行操作。
mac环境下安装mysql
首先第一种方式当然是到官网下载文件进行安装,我没有选择这种方式就不多说了,我使用的是mac的Homebrew方式进行安装的。
安装Homebrew
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
brew doctor确认brew在正常工作。brew update更新包。brew install mysql安装mysql。启动mysql服务
$ mysql.server startStarting MySQL. SUCCESS!
mysql安装基本配置
$ mysql_secure_installationSecuring the MySQL server deployment.Connecting to MySQL using a blank password.VALIDATE PASSWORD PLUGIN can be used to test passwordsand improve security. It checks the strength of passwordand allows the users to set only those passwords which aresecure enough. Would you like to setup VALIDATE PASSWORD plugin?// 提示是否设置密码Press y|Y for Yes, any other key for No: y// 提示选择密码强度等级There are three levels of password validation policy:LOW Length >= 8MEDIUM Length >= 8, numeric, mixed case, and special charactersSTRONG Length >= 8, numeric, mixed case, special characters and dictionary filePlease enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 1Please set the password for root here.// 按照所选的密码强度要求设定密码New password:Re-enter new password:// 提示密码强度50,不符合要求重新设置密码Estimated strength of the password: 50Do you wish to continue with the password provided?(Press y|Y for Yes, any other key for No) : y... Failed! Error: Your password does not satisfy the current policy requirementsNew password:Re-enter new password:// 提示密码强度100,符合要求继续进行Estimated strength of the password: 100Do you wish to continue with the password provided?(Press y|Y for Yes, any other key for No) : yBy default, a MySQL installation has an anonymous user,allowing anyone to log into MySQL without having to havea user account created for them. This is intended only fortesting, and to make the installation go a bit smoother.You should remove them before moving into a productionenvironment.// 提示删除默认无密码用户Remove anonymous users? (Press y|Y for Yes, any other key for No) : ySuccess.Normally, root should only be allowed to connect from'localhost'. This ensures that someone cannot guess atthe root password from the network.// 提示禁止远程root登录Disallow root login remotely? (Press y|Y for Yes, any other key for No) : no... skipping.By default, MySQL comes with a database named 'test' thatanyone can access. This is also intended only for testing,and should be removed before moving into a productionenvironment.// 提示删除默认自带的test数据库Remove test database and access to it? (Press y|Y for Yes, any other key for No) : y- Dropping test database...Success.- Removing privileges on test database...Success.Reloading the privilege tables will ensure that all changesmade so far will take effect immediately.// 提示是否重新加载privilege tablesReload privilege tables now? (Press y|Y for Yes, any other key for No) : ySuccess.All done!
测试登陆mysql
$ mysql -u root -pEnter password:Welcome to the MySQL monitor. Commands end with ; or \g.Your MySQL connection id is 4Server version: 5.7.21 HomebrewCopyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.Oracle is a registered trademark of Oracle Corporation and/or itsaffiliates. Other names may be trademarks of their respectiveowners.Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.mysql>
egg-sequelize连接本地数据库
简单写下部分配置,其他详细的请看官网
config.sequelize = {dialect: 'mysql',host: '127.0.0.1',port: 3306,database: 'learn',username: 'root',password: '12345678',operatorsAliases: false};
连接到本地数据库
连接过程中报错
显示的错误是:egg.js SequelizeConnectionError: Client does not support authentication protocol requested by ser...
解决方法是:
进入mysql交互环境然后执行:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '自己的密码';
