关于MySQL的初始注意事项

发布时间:2026/7/29 4:03:38

关于MySQL的初始注意事项 一、安装阶段重点默认端口MySQL 默认端口3306若端口被占用启动失败。修改端口需要同步修改配置文件、防火墙放行。命令查看占用netstat -ano | findstr 3306Windowsroot 初始密码问题MySQL8.0安装后会生成临时随机密码保存在日志文件务必保存不能空密码登录首次登录必须立刻修改密码5.7 同样有临时密码5.6 早期版本允许空密码。字符集重中之重默认部分版本不再是 utf8MySQL 里utf8 ≠ utf8mb4utf8最多 3 字节无法存储 emoji 表情utf8mb44 字节支持表情、所有中文推荐全局使用初始化建议设置字符集utf8mb4排序规则utf8mb4_unicode_ci区分 MySQL5.7 和 MySQL8.0 巨大差异身份认证插件8.0 默认caching_sha2_password旧客户端 / Navicat 低版本不兼容经常报连接失败可改为mysql_native_password8.0 默认禁用NO_AUTO_CREATE_USER不再支持该语法8.0 移除mysql.user表部分字段授权语法变化二、账号与权限安全上线必看禁止直接使用 root 账号做业务程序连接新建独立业务账号只授予对应库最小权限不要ALL PRIVILEGESsql-- 示例只允许本地访问 CREATE USER applocalhost IDENTIFIED BY 你的强密码; GRANT SELECT,INSERT,UPDATE,DELETE ON testdb.* TO applocalhost;主机权限管控user%代表任意 IP 可连接生产环境尽量限制固定 IP降低暴力破解风险。密码规范不要弱密码MySQL 默认密码策略插件validate_password会检测长度、大小写、数字符号。三、配置文件 my.ini/my.cnf 基础配置关键基础参数初次部署建议调整default-storage-engineInnoDBInnoDB 是默认事务引擎MyISAM不支持事务、崩溃容易丢数据新项目不要选用。max_connections最大连接数默认偏小根据服务器配置调整time_zone设置时区推荐system_time_zoneAsia/Shanghai避免时间相差 8 小时关闭远程访问本地开发可选绑定 ipbind-address127.0.0.1仅本机访问四、数据库、表设计初始规范主键规范每张表建议建立主键优先使用自增 INT/BIGINTInnoDB 必须有主键没有主键数据库会自动生成隐藏主键性能差。字段不要使用 NULL推荐NULL 会影响索引效率、查询判断尽量设置默认值。日期类型选择datetime推荐不受时区影响范围大timestamp存在时区、年份上限限制新项目慎用索引禁忌不要无脑建立大量索引索引提升查询、降低插入更新速度。五、SQL 语法与新手高频报错严格模式sql_mode8.0 默认开启严格模式非法日期、无默认值字段插入会直接报错开发环境建议保持开启提前发现问题。不要使用关键字做表名 / 字段名如order、user、desc使用必须反引号order包裹。区分大小写 Linux 环境下数据库名、表名默认区分大小写Windows 不区分跨环境部署极易出 bug。六、备份、日志与数据安全养成习惯上线前先学会mysqldump备份命令不要裸跑数据库无备份bashmysqldump -uroot -p 库名 backup.sql开启慢查询日志抓取执行很慢的 SQL后期优化必备重要不要随意删除 mysql 系统库mysql存储账号权限信息七、客户端连接常见坑Navicat11 等老版本无法连接 MySQL8.0根源就是认证插件 修复 SQLsqlALTER USER root% IDENTIFIED WITH mysql_native_password BY 密码; FLUSH PRIVILEGES;防火墙、安全组开放 3306 端口才能远程连接本地开发不用随意开放公网端口。八、开发环境 vs 生产环境区分开发可以适当放宽方便调试生产强制要求不暴露 root 远程访问定期自动备份启用日志使用独立业务账号不允许执行DROP、ALTER高危语句随意操作

相关新闻