杨和关键词优化,googleseo優化,公司网站模板,wordpress模板如何管理MySql 踩坑一时爽#xff0c;一直踩啊一直爽...以下记录刚踩的三个坑#xff0c;emmm... 首先是远程机子上创建表错误(踩第一个坑)#xff0c;于是将本地机器 MySql 版本回退至和远程一致(踩第二个坑)#xff0c;最后在第二个坑里踩到了第三个坑。Sequelize 创建表报错针对… MySql 踩坑一时爽一直踩啊一直爽... 以下记录刚踩的三个坑emmm... 首先是远程机子上创建表错误(踩第一个坑)于是将本地机器 MySql 版本回退至和远程一致(踩第二个坑)最后在第二个坑里踩到了第三个坑。 Sequelize 创建表报错 针对 Sequelize 创建表的时候报错 Specified key was too long; max key length is 767 bytes 原因数据库针对索引列的长度限制为最大 767byte 至于为什么会加上索引 因为 Sequelize 默认给列加唯一约束的时候会同时生成索引以达到约束唯一的时候效率更快其实只是Sequelize做了个优化容易让开发者误操作Sequelize的issues上也有相关的讨论。 长度计算例子 Column({type: Sequelize.VARCHAR(260),charset:utf8,unique: true
})
desc:string这里愿意只是想加唯一约束但 Sequelize 默认同时加上了索引于是数据库计算索引长度utf8 按 3byte 计算得出 260\*3 780 767于是超出报错。 解决方案 方案一不使用 Sequelize 提供的唯一约束标识通过 sql 语句来添加 方案二修改数据库对索引键长度的限制 : innodb_large_prefix 选项 方案三将 VARCHAR 长度控制在 767/3 以内 Mac 安装 MySql 后重置密码 默认生成的密码在安装完后随提示弹出难记且容易在弹出的时候被忽略以下是修改密码的步骤。 操作前先明确 MySql 安装位置一般默认是在 /usr/local/下自行寻找。 1. 在 System Preferences MySql 面板停止 MySql 服务 (或者终端使用命令) sudo /usr/local/mysql*/support-files/mysql.server stop2. 以安全模式启动 MySql 服务终端命令这个命令是 ctrlz 退出的 sudo /usr/local/mysql/bin/mysqld_safe --skip-grant-tables3. 新开一个终端面板执行命令用 root 身份登录 mysql 服务输入电脑的 root 密码 sudo /usr/local/mysql/bin/mysql -u root4. 这时候进入 mysql 服务环境了注意终端的前缀是 mysql 的然后执行修改密码语句(注意根据版本不同字段也有所不同可以通过 sql 语句先查看) # 建议先查看再更新
# 查看show columns from user from mysql
# 更新UPDATE mysql.user SET authentication_stringPASSWORD(test123), password_expiredN WHERE Userroot; 5. 完成后通过 MySql 面板或者终端重启即可 安全模式启动后可无需密码登录所以歩骤 3-4 也可在数据库管理应用内操作~ MySql 命令行注意事项 命令行支持换行所以当结束一行的时候需要以分号 ; 结尾。 由于习惯了单行输入即出结果没注意支持分行的问题所以就入了这个坑。 举个例子 # 正确 show tables from mysql; # 正确show tables # 这里回车from mysql;# 错误show tables from mysql # 这里回车无反应因为语句未结束# 错误 因为支持分行show tables from mysql # 然后误以为没反应继续回车重新操作show tables from mysql; # 这时候会报错因为语句变成了 show tables from mysql show tables from mysql; 刷着官网的文档也没能避免这些坑心也是挺累的... 转载于:https://www.cnblogs.com/ys-ys/p/10616016.html