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

阅读剩余
THE END