mysql5.7插入中文到mysql显示异常(问号或者乱码)修改my.ini等一系列问题汇总

因为之前mysql版本升级到5.7造成好多后遗症问题,统统记录一下

起因是我发现自己前端插入一条含中文字符的数据在数据库中居然显示为??,疑惑的我排查了各种问题,此处附上一个问题排查较为详细的博文问题排查,我也是通过一一排查发现是自己的mysql字符集没有设置,或者没有设置好的话,默认是latin1(该死的默认)然后就开始了漫漫修改之路,可以通过show variables like "%chara%"; 这个命令先查看下自己所使用的那个库的字符集都是什么,其中分别代表的含义
 

character_set_client为客户端编码方式;

character_set_connection为建立连接使用的编码方式;

character_set_database为数据库的编码方式;

character_set_results是结果集的编码方式;

character_set_server为数据库服务器的编码方式。

 比如我的就是默认的latin1,所以出现插入汉字?的情况

然后就是修改之类以及遇到的问题

想必大家也想从根源一次性解决问题,所以就要从my.ini文件下手了


[mysqld]

# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
# innodb_buffer_pool_size = 128M

# Remove leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
# log_bin

# These are commonly set, remove the # and set as required.
basedir="D:/delepment/php/phpStudy/phpStudy/MySQL/"
datadir="D:/delepment/php/phpStudy/phpStudy/MySQL/data/"
port=3306
# server_id = .....
# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
# join_buffer_size = 128M
# sort_buffer_size = 2M
# read_rnd_buffer_size = 2M 

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES 
character-set-server=utf8
[mysql]
default-character-set=gbk

 以上是我修改后的my.ini文件,主要包括basedir、datadir和新增character-set-server=utf8

 综上就是所有的修改了,修改好之后还需要重启mysql服务,然后就是慢慢过坑路。

问题一、本地计算机上的mysql服务启动停止后,某些服务在未由其他服务或程序使用时将自动停止

 解决:

首先找到MySQL的安装目录(我的是:D:\delepment\php\phpStudy\phpStudy\MySQL),删除安装目录下的data文件夹

 以管理员身份打开cmd进入mysql安装目录的bin文件运行(在搜索栏输入cmd,右键以管理员身份运行)

(当然如果没有将MySQL命令添加到环境变量的话,请打开MySQL的bin文件夹,在地址栏输入cmd,回车,可以在此目录下打开cmd)

1.首先需要删除原来的mysql服务  mysqld --remove

2.其次再使用 mysqld –install 命令 安装。

3.最后再使用 mysqld --initialize-insecure 初始化(初始化之后,安装根目录下就会多出现一个data文件夹,里面会有一堆文件)。

4.然后再输入 net start mysql 就会显示启动成功。

 由此就成功好了,当然我还走过其他弯路

问题二、net start mysql报错服务无法启动,服务没有报告任何错误

原因可能一、是自己手动在安装目录下创建了data文件,删掉手动创建的文件,重新走一遍删除服务、安装命令、初始化、再启动即可。

原因可能二、改动过my.ini文件导致服务启动失败,可参考上述我的my.ini文件,或者更改回最初版本,重新再执行一次上述步骤。

问题三、MySQL提示出现1045问题

问题可能一、端口重复占用,关闭占用的端口即可例如MySQLa

问题可能二、用户名或者密码错误

   解决过程:参考博文解决MyQL数据库中1045错误的方法

        Unknown column 'password' in 'field list'

1.先关闭服务

2.再到MySQL的文件夹下面找到后缀名为my.ini的文件,在[mysqlld]的下面添加skip-grant-tables

3.以管理员身份运行cmd,然后到bin目录下输入mysql -u root -p,需要输入密码的时候回车就可以了

4.再输入use mysql  //使用这个数据库

5.再输入update mysql.user set authentication_string=password('你的新密码') where user='root';

6.flush privileges;      //刷新数据库

6.再删除skip-grant-tables,删掉之后再重启服务器就OK了

问题四、ERROR 1054 (42S22): Unknown column 'password' in 'field list'

参考博文第二篇可知:错误的原因是 5.7版本下的mysql数据库下已经没有password这个字段了,password字段改成了authentication_string,所以第一篇博文的update user set password=password("123456") where user="root";

修改为update mysql.user set authentication_string=password('你的新密码') where user='root';即可

问题五、'mysql' 不是内部或外部命令,也不是可运行的程序 或批处理文件

参考博文mysql不是内部或外部命令,也不是可运行的程序或批处理文件

原因一、没有配置环境变量,配置一下即可

原因二、cmd没有以管理员身份运行,搜索栏输入cmd右键以管理员身份运行即可。

 

 

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
### 回答1: MySQL 5.7中的my.iniMySQL配置文件,用于设置MySQL服务器的参数和选项。 在my.ini文件中,可以定义各种MySQL服务器的配置选项,包括但不限于以下内容: 1. [mysqld]:这一节定义了MySQL服务器的全局参数。可以设置服务器的端口号、字符集、最大连接数、临时文件路径、日志文件路径等。 2. [mysql]:这一节定义了MySQL客户端的全局参数。可以设置客户端连接服务器时的默认字符集、历史命令记录文件路径等。 3. [mysqldump]:这一节定义了mysqldump命令行工具的参数。可设置导出数据时的默认字符集、导出的文件格式等。 4. [client]:这一节定义了一些针对单个客户端的特定参数。可以为每个客户端连接设置不同的字符集、超时时间等。 5. [mysql.server]:这一节定义了MySQL服务器的启动脚本的参数。可以设置服务器启动脚本的路径、用户等。 通过修改my.ini文件,可以按需调整MySQL服务器的配置,满足特定的需求。例如,可以通过增加max_connections参数来提高最大并发连接数,通过修改character_set_server参数来设置服务器的默认字符集。 需要注意的是,在修改my.ini文件后,需要重启MySQL服务器才能使配置生效。 总之,MySQL 5.7中的my.ini是一个非常重要的配置文件,通过修改它可以定制和优化MySQL服务器的性能和功能。 ### 回答2: MySQL 5.7 是一款常用的关系型数据库管理系统,它拥有很多配置项,可以通过修改 my.ini 文件来进行配置。 my.ini 文件是 MySQL 5.7 的配置文件,通过修改该文件可以对 MySQL 进行各种参数的配置,包括内存大小、连接数、缓冲区大小、字符集等等。下面是一些常见的配置项: 1. [mysql] 部分:用于配置 MySQL 客户端的默认值,如默认字符集、默认端口等。 2. [mysqld] 部分:用于配置 MySQL 服务器的行为和性能。比如: - datadir:设置数据文件的存储路径。 - port:设置服务器监听的端口号。 - bind-address:设置服务器绑定的 IP 地址。 - max_connections:设置服务器允许的最大连接数。 - key_buffer_size:设置索引缓冲区大小。 3. [mysqldump] 部分:用于配置 mysqldump 工具的行为。比如: - max_allowed_packet:设置每个 SQL 语句允许的最大数据包大小。 - quick:设置是否使用快速导出模式。 4. [client] 部分:用于配置 MySQL 客户端程序的行为和性能。 - default-character-set:设置默认字符集。 - protocol:设置客户端与服务器的通信协议。 通过修改 my.ini 文件,可以根据实际需求对 MySQL 进行配置,提升服务器性能或满足特定的应用需求。在修改配置文件之后,需要重启 MySQL 服务使配置生效。 需要注意的是,在修改 my.ini 文件时,一定要小心,确保正确理解每个参数的作用和影响范围,避免造成意外的后果。如果不确定如何修改某个参数,建议参考 MySQL 官方文档或咨询专业人士的建议。 ### 回答3: MySQL 5.7中,my.iniMySQL服务器的配置文件。在Windows系统中,my.ini文件位于MySQL安装目录的根目录下。 my.ini文件是一个文本文件,用于配置MySQL服务器的各种参数和选项。它包含了MySQL服务器运行时的一些重要设置,如端口号、字符集、缓存大小、日志文件位置等。 通过修改my.ini文件,我们可以对MySQL服务器的行为进行自定义,以满足特定的需求。比如,我们可以修改默认端口号,将其改为其他值,或者设置不同的字符集,以支持多国语言的数据存储。 一般来说,修改my.ini文件需要谨慎操作。在对my.ini文件进行修改之前,我们需要备份原始文件,以便出现问题时可以恢复到原始状态。 修改my.ini文件后,我们需要重启MySQL服务器才能使更改生效。可以通过在命令行中输入"net stop mysql"停止MySQL服务,然后再输入"net start mysql"重新启动MySQL服务来实现。 值得注意的是,修改my.ini文件可能会影响MySQL服务器的性能和稳定性。因此,在对my.ini文件进行任何更改之前,应该先了解每个参数的含义和默认值,并根据实际需求进行相应的调整。 总之,my.ini文件是MySQL 5.7中用于配置MySQL服务器的重要文件。通过对该文件的合理配置,我们可以满足不同的需求,提高MySQL服务器的性能和稳定性。但是,在修改my.ini文件之前,需要了解每个参数的含义和默认值,并谨慎操作,以避免不必要的问题

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值