我的知识记录

数据库数据库权限_字符集与权限

很多站长遇到数据库权限就重装MySQL,数据全丢。数据库问题大多是配置或权限问题,先备份数据(mysqldump或复制data目录),再排查。重装只在数据文件严重损坏且无备份时考虑,且要先抢救数据。

备份还原:mysqldump -u用户 -p库名 > backup.sql备份;mysql -u用户 -p库名 < backup.sql还原;大数据库用命令行不用phpMyAdmin(超时和上传限制);还原前确认字符集一致(UTF-8);备份压缩mysqldump ... | gzip > backup.sql.gz;还原gunzip < backup.sql.gz | mysql ...。

参考(MySQL配置与性能): ``` # my.cnf 配置 [mysqld] datadir=/var/lib/mysql socket=/var/lib/mysql/mysql.sock character-set-server=utf8mb4 collation-server=utf8mb4_unicode_ci max_connections=500 innodb_buffer_pool_size=1G innodb_log_file_size=256M slow_query_log=1 slow_query_log_file=/var/log/mysql-slow.log long_query_time=2 bind-address=127.0.0.1

# 远程连接授权 mysql -u root -p GRANT ALL PRIVILEGES ON 库名.* TO '用户'@'%' IDENTIFIED BY '密码'; FLUSH PRIVILEGES;

# 表修复 mysql -u root -p -e "REPAIR TABLE 库名.表名;" mysqlcheck -u root -p --auto-repair --all-databases

# 查看表大小 mysql -u root -p -e "SELECT table_name, round(((data_length + index_length) / 1024 / 1024), 2) AS size_mb FROM information_schema.TABLES WHERE table_schema='库名' ORDER BY size_mb DESC;" ```

MySQL安全:root只允许localhost;应用账号只给必要权限(SELECT/INSERT/UPDATE/DELETE),不给DROP/ALTER;定期备份;phpMyAdmin改路径 + IP白名单;3306不对外暴露(除非需要远程连接);开启审计日志;强密码。数据库被拖库是最严重的安全事故。

字符集问题:数据库、表、列、连接都用utf8mb4(支持emoji和所有中文)。my.cnf [mysqld] character-set-server=utf8mb4、[client] default-character-set=utf8mb4。连接SET NAMES utf8mb4。字符集不一致导致中文乱码、emoji存不进去、排序错误。迁移数据库时确认字符集一致。

数据库数据库权限_字符集与权限

标签:

更新时间:2026-08-27 10:40:32

上一篇:微信多个微信bat脚本下载_Win11_微信4.0_免费

下一篇:shopex绿卡授权ICP备案要求_域名备案与授权关系