改变字符集后中文乱码不生效
- 安装mysql后没有及时修改字符编码集,创建库的时候默认使用自带的编码集,当我们写入带有中文的数据后,在我们查询的时候才发现查出来是乱码。
默认安装数据库后默认字符集是
2. 此时我们就需要把数据库默认的字符编码集改成utf-8
我们看到默认数据库编码集是latinl,需要修改
3. 打开配置文件/etc/my.cnf在[client]、[mysqld]节点下加入下图红色字体圈出来的配置,保存退出
4. 重启数据库让配置文件生效
命令:service mysql restart 或/etc/init.d/mysql restart
注意:此时我们在查看我们插入的语句,发现还是乱码,我们这时候就特别困惑,难道是配置文件没有生效,其实不是,配置文件以及生效了,只是我们在创建数据库是在修改编码集之前,所以修改编码集后只对在这个时间点之后创建的库生效,之前创建的库依然默认的是latinl编码集,中文依然乱码。
我相信在这里,很多新手就犯过这个错误,发现乱码了,把编码集改变了,还是乱码,查了很多资料,发现其实是我们根本就没有理解清楚,相信我说道这里大家就明白了,重新创建一个库就好了。
5. 重启MySQL后我们查字符编码集
MySQL最大连接数配置后重启MySQL就失效
错误日志:Can not connect to MySQL server. Too many connections这个就说明我们业务需要的数据库连接数不够了,导致无法连接数据库
- mysql最大连接数是什么,简单的说mysql允许建立多少个连接,如果实际的连接数超过设置的默认值,那么我们的程序多出的连接就无法正常连接数据库,故而程序报错,影响我们的业务。
- 查看数据库连接数
我们看到最大错误连接数和最大连接数都是系统默认的大小
3. 通过以上查询的结果得知,这个连接数有点太小,可能在实际场景下无法满足我们的应用需求,下面我就教大家如何设置最大连接数使其不失效:
- 很多人查看帖子,发现通过执行命令就可以实现
第一种方法:mysql>set GLOBAL max_connections=1000; #设置mysql最大连接数注意:这个方,法数据库重启后就会失效,因为这个不会写入配置文件,所以解决不了实际的问题第二种方法:在配置文件my.cnf的[mysqld]节点加入:max_connections=1000max_connect_errors=1000注意:修改完成后要重启数据库,正常情况下我们的配置文件会生效,但是有时候由于Linux操作系统os的限制,导致无法生效
- 终极解决配置文件不生效的办法
除了在配置文件my.cnf的[mysqld]节点加入:
max_connections=1000
max_connect_errors=1000
还要配置一下的文件:
修改/lib/systemd/system/mysql.service,在末尾添加:
LimitNOFILE=65535
修改vim,在末尾添加:
* soft nofile 65536 * hard nofile 65536
systemctl daemon-reload
service mysqld restart