mysql使用遇到的问题
Linux下Mysql中文显示成问号的问题
1、打开Linux窗口,启动mysql。
2、连接mysql输入show variables like '%character%';
出现如下图,这样的话在linux下操作mysql会出现中文乱码,所以我们要解决这个问题。
3、关闭mysql,找到/etc/mysql/mysql.conf.d/mysqld.cnf
配置文件
4、编辑文件,指令:vim
,在 [mysqld] 下面添加一行代码
character_set_server= utf8
5、重启mysql服务:
service mysql stop;
service mysql status;
service mysql start;
6、连接mysql,输入命令show variables like '%character%';
显示变为utf8,则表示修改成功。再操作mysql数据库就不会出现中文乱码。
注意:若不成功,则看下配置文件的位置是否正确。
/etc/mysql 下有个my.cnf,里面指向的文件路径 就是配置文件的路径:!includedir /etc/mysql/mysql.conf.d/
扩展知识:
This version of MySQL doesn't yet support 'LIMIT & IN/ALL/ANY/SOME subquery' 解决办法
在对mysql进行以下Linq查询时报错
var newsIds = _db.NewsComment.OrderByDescending(c => c.AddTime).GroupBy(c => c.NewsId).Select(c => c.Key).Take(topCount); var list = _db.News.Include("NewsClassify").Include("NewsComment").Where(c => newsIds.Contains(c.Id)) .Where(where).OrderByDescending(c => c.PublishDate); foreach (var news in list)
改为
var newsIds = _db.NewsComment.OrderByDescending(c => c.AddTime).GroupBy(c => c.NewsId).Select(c => c.Key).Take(topCount).ToList(); var list = _db.News.Include("NewsClassify").Include("NewsComment").Where(c => newsIds.Contains(c.Id)) .Where(where).OrderByDescending(c => c.PublishDate); foreach (var news in list)
参考:This version of MySQL doesn't yet support 'LIMIT & IN/ALL/ANY/SOME subquery' 解决办法