ubuntu my.cnf(ubuntu修改grub)
ubuntu麒麟系统tomcat中文乱码怎么办
在ubuntu麒麟系统中安装tomcat后,用户在搭建Demo程序的过程中有遇到tomcat中文显示乱码的情况,一般乱码都是因为编码问题导致的,而如果大家的编码设置是正确的话就是下面的原因导致的,遇到这种问题的网友可以看看下面为大家准备的解决方法。
ubuntu麒麟系统tomcat中文乱码怎么办?
出现乱码的本质是因为字符集的不统一,如果你的web浏览器发送到服务器的内容字符编码和服务器编码不一致,那么就会出现乱码。
解决方法:
(1)首先统一linux服务器的字符编码,统一配置为utf-8。
(2)配置tomcat配置文件server.xml,将
配置成:
(3)配置mysql数据库my.cnf,将默认字符集设成utf-8。设置完数据库字符集之后再创建数据库,否则前后数据库字符集信息不一致,会导致插入错误。
Tomcat下中文乱码问题的其他解决思路
现在将常见的乱码问题分为JSP页面显示中文乱码、表单提交乱码两类。
1)JSP页面中显示中文乱码??
在JSP文件中使用page命令指定响应结果的MIME类型,如
2)表单提交乱码
表单提交时(post和Get方法),使用request.getParameter方法得到乱码,这是因为tomcat处理提交的参数时默认的是iso-8859-1,表单提交get和post处理乱码问题不同,下面分别说明。
(1)POST处理
对post提交的表单通过编写一个过滤器的方法来解决,过滤器在用户提交的数据被处理之前被调用,可以在这里改变参数的编码方式,过滤器的代码如下:
(2)Get方法的处理
tomcat对post和get的处理方法不一样,所以过滤器不能解决get的乱码问题,它需要在其他地方设置。
打开conf目录下server.xml文件,找到对8080端口进行服务的Connector组件的设置部分,给这个组件添加一个属性:URIEncoding="GBK"。修改后的Connector设置为:
*注意修改后重新启动tomcat才能起作用。
ubuntu修改my.cnf文件导致mysql启动不了的问题_MySQL
在Ubuntu系统中配置MySQL时,遇到修改my.cnf文件后导致MySQL无法启动的问题。主要原因是字符集配置不正确,导致启动时出现错误。网上有建议在my.cnf文件的[client]和[mysqld]部分添加或修改默认字符集为utf8。然而,尝试后发现仍然无法启动MySQL服务。
在进行多次尝试和查找后,最终发现问题的关键在于[mysqld]部分的配置。正确的解决方法是在[mysqld]下添加`character-set-server= utf8`。通过这一调整,MySQL成功启动。
完成配置后,再次查看MySQL的字符集配置,确认所有设置均正确,包括但不限于`character_set_client`、`character_set_connection`、`character_set_database`等,均显示为`utf8`。同时,`character_set_server`也已更改为`utf8`。
总结来看,问题的关键在于正确配置`character-set-server`,以确保MySQL在服务器层面使用utf8字符集。这不仅解决了启动问题,也确保了MySQL数据库能够正确处理和显示中文字符,从而提高应用的兼容性和效率。
ubuntu14.04 更换mysql5.7.14数据目录
更改数据目录完整记录:
MYSQL默认的数据文件存储目录为/var/lib/mysql。假如要把目录移到/home/data下需要进行下面几步:
1.home目录下建立data目录
1
2
cd/home
mkdir data
2.把MySQL服务进程停掉:
1
mysqladmin-u root-p shutdown
3.把/var/lib/mysql整个目录移到/home/data
1
mv/var/lib/mysql/home/data/
这样就把MySQL的数据文件移动到了/home/data/mysql下
4.找到my.cnf配置文件
如果/etc/目录下没有my.cnf配置文件,请到/usr/share/mysql/下找到*.cnf文件,拷贝其中一个到/etc/并改名为my.cnf)中。命令如下:
1
cp/usr/share/mysql/my-medium.cnf/etc/my.cnf
5.编辑MySQL的配置文件/etc/my.cnf
为保证MySQL能够正常工作,需要指明mysql.sock文件的产生位置。修改socket=/var/lib/mysql/mysql.sock一行中等号右边的值为:/home/mysql/mysql.sock。操作如下:
vi my.cnf(用vi工具编辑my.cnf文件,找到下列数据修改之)
1
2
3
4
# The MySQL server[mysqld]
port= 3306
#socket=/var/lib/mysql/mysql.sock
socket=/home/data/mysql/mysql.sock(加上此行)
6.修改MySQL启动脚本/etc/init.d/mysql
最后,需要修改MySQL启动脚本/etc/init.d/mysql,把其中datadir=/var/lib/mysql一行中,等号右边的路径改成你现在的实际存放路径:home/data/mysql。
vi/etc/init.d/mysql#datadir=/var/lib/mysql(注释此行)
datadir=/home/data/mysql(加上此行)
如果是CentOS还要改/usr/bin/mysqld_safe相关文件位置;
最后做一个mysql.sock链接:
in-s/home/data/mysql/mysql.sock/var/lib/mysql/mysql.sock
7.重新启动MySQL服务
/etc/init.d/mysqldstart
或用reboot命令重启Linux
如果工作正常移动就成功了,否则对照前面的7步再检查一下。还要注意目录的属主和权限。
复制内容到剪贴板
代码:
[root@sample~]# chown-R mysql:mysql/home/data/mysql/←改变数据库的归属为mysql
[root@sample~]# chmod 700/home/data/mysql/test/←改变数据库目录属性为700
[root@sample~]# chmod 660/home/data/mysql/test/*←改变数据库中数据的属性为660
错误解决方案:
1.在CentOS上,如果mysql是通过yum安装的,那么可能使用上面的方法不能完全凑效。
原因:mysql的配置文件有多处,除了更改/etc/my.cnf文件之外,还需要更改/usr/lib64/mysql/mysql_config
这个文件里面有一行“ldata='/var/lib/mysql'”和"socket=/var/lib/mysql/mysql.sock",这里也需要改掉
2.另外,还有权限问题,查看/var/log/mysqld.log,发现Can't create test file/xxx/mysql/centos5.lower-test
这里是因为没有权限创建或读取文件。
解决办法就是使用setenforce 0这个命令,让系统关闭权限校验,然后再运行命令 service mysqld start发现OK了。
如果要彻底禁用SELinux需要在/etc/sysconfig/selinux中设置参数selinux=0
另外一个办法是restorecon-FRv/home/data/mysql,或者chcon-R-t mysqld_db_t/home/data/mysql