mysql/mariadb学习过程中出现的问题与解决
mysql> insert into student values(,'周帅','男',,'CS');
ERROR (): Duplicate entry '' for key 'PRIMARY'(duplecate为重复的意思)
primary key 主键不能插入与其相同的字段 同 unique ERROR (HY000): Error on rename of './test/#sql-27c_2308' to './test/student' (errno: )
更改类型编码类型时 出现此错误一般为有外键约束 解决方法 暂时停止外键检查 set foreign_key_checks=; 数据库刚安装时数据库的默认编码可能并不一定为utf8的格式,那么存入中文数据时可能会出错以下为解决方法:
.首先将mariadb的客户端以及数据库的默认编码改成utf8(基于cento7. mariadb5.):
查看mariadb/mysql数据库的相关编码:
mysql> show variables like 'character%';
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
rows in set (0.38 sec)
这其中有database和server不是utf8的格式,则进入/etc/my.cnf.d目录中更改配置文件:
在client.cnf中的[client]下添加:
[client]
default-character-set=utf8
在server.cnf中的[mysqld]下添加:
[mysqld]
character-set-server=utf8
重启数据库,查看mariadb/mysql数据库的相关编码:
mysql> show variables like 'character%';
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
rows in set (0.38 sec)
.因为已建立的数据库默认的编码格式不为utf8则虽然更改默认的编码格式后,已建立的数据库并不会更改,在之后新创建的表格中也会默认继承数据库原来的编码格式,因此这里来更改单个数据库的默认编码:
首先选择要更改的数据库
mysql> use test
Database changed
查看test数据库的编码格式:
mysql> show create database test;
+----------+-----------------------------------------------------------------+
| Database | Create Database |
+----------+-----------------------------------------------------------------+
| test | CREATE DATABASE `test` /*!40100 DEFAULT CHARACTER SET latin1 */ |
+----------+-----------------------------------------------------------------+
row in set (0.38 sec)
更改数据库的编码格式:
mysql> alter database test default character set utf8;
Query OK, row affected (0.38 sec)
再次查看是否更改成功:
mysql> show create database test;
+----------+---------------------------------------------------------------+
| Database | Create Database |
+----------+---------------------------------------------------------------+
| test | CREATE DATABASE `test` /*!40100 DEFAULT CHARACTER SET utf8 */ |
+----------+---------------------------------------------------------------+
row in set (0.38 sec)
新建一个表格来确认:
mysql> create table emp(empno numeric() primary key,ename varchar() not null,job varchar(),mgr numeric(),hiredate date, sal numeric(,),comm numeric(,),deptno numeric());
Query OK, rows affected (0.41 sec)
查看emp表格中的相关信息:
mysql> show full columns from emp;
查看student表中的编码:
mysql> show full columns from student;
修改字段中的编码:
mysql> alter table student convert to character set utf8 collate utf8_general_ci;
ERROR 1025 (HY000): Error on rename of './test/#sql-27c_2308' to './test/student' (errno: 150)
更改类型编码类型时 出现此错误一般为有外键约束 解决方法 暂时停止外键检查 set foreign_key_checks=0;
mysql> show full columns from student;
再来查看一下,可见所有的编码都已经改成utf8的格式;
2018-04-29 13:25:12
mysql/mariadb学习过程中出现的问题与解决的更多相关文章
- 开启mysql远程访问过程中所遇常见问题的解决办法
MYSQL ERROR 2003 (HY000): Can't connect to MySQL server on '192.168.10.210' (111) 解决方法 今天在测试MySQL的连接 ...
- Docker学习过程中遇到的问题及解决方法
1.重新安装Docker后,运行不起来 [root@zyt-test-14-53 ~]# docker infoCannot connect to the Docker daemon. Is the ...
- java学习过程中遇到的坑及解决方法
1. Table 'my_data_base.gjp_zhangwu' doesn't exist Query: select * from gjp_zhangwu Parameters: 数据库中的 ...
- Android编程学习过程中遇到的错误以及解决办法
Android Studio遇到的问题 Android Studio一直提示右下角那个错误,Failed to open zip file.我是根据这位大佬的博客https://www.cnblogs ...
- mysql/mariadb学习记录——创建删除数据库、表的基本命令
查看已有的数据库: mysql> show databases; +--------------------+ | Database | +--------------------+ | inf ...
- 15 个有用的 MySQL/MariaDB 性能调整和优化技巧(转载的一篇好文)
MySQL 是一个强大的开源关系数据库管理系统(简称 RDBMS).它发布于 1995 年(20年前).它采用结构化查询语言(SQL),这可能是数据库内容管理中最流行的选择.最新的 MySQL 版本是 ...
- 【MySQL】15个有用的MySQL/MariaDB性能调整和优化技巧
MySQL 是一个强大的开源关系数据库管理系统(简称 RDBMS).它发布于 1995 年(20年前).它采用结构化查询语言(SQL),这可能是数据库内容管理中最流行的选择.最新的 MySQL 版本是 ...
- 15 个有用的 MySQL/MariaDB 性能调整和优化技巧
MySQL 是一个强大的开源关系数据库管理系统(简称 RDBMS).它发布于 1995 年(20年前).它采用结构化查询语言(SQL),这可能是数据库内容管理中最流行的选择.最新的 MySQL 版本是 ...
- MySQL/MariaDB中的事务和事务隔离级别
本文目录:1.事务特性2.事务分类 2.1 扁平事务 2.2 带保存点的扁平事务 2.3 链式事务 2.4 嵌套事务 2.5 分布式事务3.事务控制语句4.显式事务的次数统计5.一致性非锁定读(快照查 ...
随机推荐
- Windows access Linux / Ubuntu via Remote Desktop via xrdp
Windows 多用户远程桌面连接到 Ubuntu / Linux Access Ubuntu from Windows remotely Follow these steps : Step 1 ...
- java 内存分析之static
源码: 内存分析: 源码: 静态方法: 用static 声明的方法为静态方法,在调用该方法时,不会将对象的引用传递给它,所以在static 方法中不可访问非static 的成员. 可以通过对象 ...
- where条件使用to_char条件太慢
where条件使用to_char 会不使用索引并使用nestedloop 可以用with as解决 最后再加上to_char的条件语句
- Entity Framework的几种初始化器
Database.SetInitializer<TContext>(new NullDatabaseInitializer<TContext>()); Database.Set ...
- JS 触发不同ifram控件,实现刷新,关闭标签(H+框架)
例: //前台页面事件处理模块var EventOperation = { Refresh: function (data_id) { var a = (window.top); var ele = ...
- [翻译] TGLStackedViewController
TGLStackedViewController A stack layout with gesture-based reordering using UICollectionView -- insp ...
- 铁乐学python_Day39_多进程和multiprocess模块2
铁乐学python_Day39_多进程和multiprocess模块2 锁 -- multiprocess.Lock (进程同步) 之前我们千方百计实现了程序的异步,让多个任务可以同时在几个进程中并发 ...
- iis里URL重写重定向,http做301重定向https
上一篇文章写了iis和apache共用80端口,IIS代理转发apache. 因为第一次配置,这中间还是碰到了很多问题.这里记录下来,希望以后能避免错误. 使用Application Request ...
- 【websocket-sharp】使用
一 介绍 WebSocket# 提供了实现WebSocket协议客户端和服务器. WebSocket协议是基于TCP的一种新的网络协议.它实现了浏览器与服务器全双工(full-duplex)通信——允 ...
- java Date日期类和SimpleDateFormat日期类格式
~Date表示特定的时间,精确到毫秒~构造方法:public Date()//构造Date对象并初始化为当前系统的时间public Date(long date) //1970-1-1 0:0:0到指 ...