你的位置:首页 > 数据库

[数据库]mysql使用中遇到的问题

问题一:
第一次mysql启动服务失败,未返回报错信息
解决方法:
执行mysqld -console命令,查看error信息,对症下药
但一般情况下,主要是因为mysql目录下的data文件夹中内容不正确,解决方法有以下两个
1.在开启服务前执行初始化命令
mysqld --initalize
然后启动服务
2.下载5.6或之前版本的mysql压缩包
将压缩包解压后里面的data文件夹复制到当前mysql所在文件夹根目录中
然后启动服务
无论是第一个操作还是第二个操作,记得先关掉服务在操作,操作完了再打开服务
 
问题二:
mysql缺少performance_schema.session系统表导致各类问题
解决方法:
使用以下两个命令后重启服务(windows下关闭再打开)
mysql_upgrade -u root -p
mysql_upgrade -u root -p --force
 
问题三:
在mysql中插入数据时使用中文报错,Error Code: 1366. Incorrect string value。
解决方法:
需要完成以下几步,若第一无法完成可先跳过,只影响数据库中已有内容,但是为了保证新的数据库、数据表可写中文,第二三步一定要正确。
1.设置mysql的编码,统一改为utf8(因为utf8是兼容性比较强的编码,如果需要使用其他语言也可以修改为其他的编码)
打开mysql的根目录,
新建文件my.ini然后将my-default.ini中内容复制到my.ini然后删除my-default.ini文件,
在my.ini文件的[mysqld]部分下面加一个语句character_set_server=utf8,
随后关闭mysql服务再启动mysql服务。
登陆进入mysql后,别选择任何数据库,直接使用\s命令查看字符集编码,查看server这一项的编码是否为utf8,如果是的话就算成功
剩下的client和conn应该默认为gbk,如果不是的话可以再网上搜一搜设置办法
至于DB的编码,其实是和数据库有关的,当最开始连接入mysql时,其实是选择了sys数据库(默认的系统数据库),等做了下面的第二步后再选择其他数据库之后再使用\s命令,你们就会发现区别。
 
2.在新建数据库时,将数据库设置为utf8编码
做了这一步,你就会发现你刚创建的数据库的DB字符集编码一定是utf8,也保证了你新建的数据库可以输入中文。
具体如下
CREATE DATABASE 数据库名字 CHARACTER SET 'utf8';
3.如果数据库的编码未设置,而你还是想输入中文,那么你需要在新建数据表的时候对表的编码进行设置
如下代码段,建立多个字段,使用CHARACTER SET 'utf8'代码把表中的所有字段改为utf8格式
CREATE TABLE 表名称
(
一大堆字段
)CHARACTER SET 'utf8';
 
以上步骤尽量在mysql安装配置的时候就完成,避免不必要的麻烦,或者至少完成第二第三步。