数据库——Mysql

 

学习记录:

1、mysql8.0版本安装之后连接不上数据库

参考:http://www.huyongdi.com/2018/05/16/nodejs-express-mysql%E5%B0%8F%E5%85%A8%E6%A0%88%E9%81%87%E5%88%B0%E7%9A%84%E5%9D%91/

Error: 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即可。

2、Mac找不到mysql命令

 

mysql -u root -p

在home下的.bash_profile中添加export PATH=${PATH}:/usr/local/mysql/bin(确认路径正确)

然后调用source ~/.bash_profile使配置生效

这时如果还有问题:Access denied for user 'gemo'@'localhost' (using password: NO)

则重启Mysql服务即可。

如果不行,这里就帮不了你了。

3、命令行创建数据库create database xxx;

这里的分号是要的,不然没有效果,不知道为什么,一开始我没加分号,然后啥也没有,以为又出什么问题了(不知道这算不算)

4、经过以上操作,在node.js中已经可以正常使用mysql了。

var mysql = require('mysql');
var connection = mysql.createConnection({
    host: 'localhost',
    user: 'root',
    password: 'password',
    database: 'test'// 如果没有则需要先创建,参考3,否则报错
});

connection.connect();
// sql是数据库SQL语句,params就是SQL语句携带的参数,params是一个数组
connection.query(sql, params, function (error, results) {
    if (error) console.log(error);
    console.log(results);
})

5、可以使用sequelize对mysql进行基本操作。具体的百度吧。

安装sequelize

npm install sequelize

如果这时候使用sequelize会报错:Please install mysql2 package manually

参考:https://segmentfault.com/q/1010000011808312

因为sequelize需要单独安装mysql依赖

npm install mysql2 -S

这时可以开始sequelize使用了:

const Sequelize = require('sequelize');
const sequelize = new Sequelize('test', 'root', 'password', {
    host: 'localhost',
    dialect: 'mysql',
    operatorsAliases: false,

    pool: {
        max: 5,
        min: 0,
        acquire: 30000,
        idle: 10000
    }
});

sequelize.authenticate()
    .then(() => {
        console.log('Connection has been established successfully.');
    })
    .catch(err => {
        console.error('Unable to connect to the database:', err);
    });

重点

1、索引、复位索引

适当的索引能减少SQL语句耗时

2、explain分析器

利用explain对SQL语句进行分析然后优化

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值