MySQL在不删除数据时,同时重新更新主键ID
-
删除原有主键
ALTER TABLE `table_name` DROP `id`;
-
添加新的主键字段
ALTER TABLE `table_name` ADD `id` MEDIUMINT( 8 ) NOT NULL FIRST;
-
设置新主键
ALTER TABLE `table_name` MODIFY COLUMN `id` MEDIUMINT( 8 ) NOT NULL AUTO_INCREMENT,ADD PRIMARY KEY(id);
MySQL清空数据表,并且主键回到1
MySQL要清空数据表的时候可以用
delete
,但这是会出现一个问题,主键不是从默认1开始了,对于一些强迫症的人来说就非常难受,这时候一条命令就可以搞定了
TRUNCATE TABLE tablename
MySQL基础操作
- 创建数据库命令:
mysql> create database <数据库名>
- 显示所有的数据库命令:
mysql> show databases (注意:最后有个s)
- 删除数据库命令:
mysql> drop database <数据库名>
- 进入数据库命令:
mysql> use <数据库名>
- 转换编码命令:
mysql> set names gbk
- 查看当前使用的数据库命令:
mysql> select database();
- 当前数据库所有的表信息命令:
mysql> show tables (注意:最后有个s);
- 导出数据库命令:
mysqldump -h(域名) -u(帐号) -p(密码) 数据库名 > 本地路径+文件名; (注意:导出数据库前必须先要退出MySQL控制台。还有导出的文件后缀名一般都是使用 .sql)
- 导入数据库命令:
首先登入MySQL控制台C:\Users\admin> mysql -h(域名,可填或不填) -u(账号) -p(密码); 在进入数据库mysql> use <数据库>; 在导入数据库mysql> source E:/school.sql (注意:source 后面是你sql文件所在的绝对路径)
- 在MySQL的表中增加字段命令:
mysql> alter table <表名> add column userid smallint not null primary key auto_increment; 这样,就在这张表dbname中添加了一个字段userid,类型为smallint
- 删除表命令:
mysql> drop table student
- 清空表命令:
mysql> delete from student
- 更新表命令:
mysql> update student set
name='小A' where
id=1
decimal类型
例子:
`price` decimal(20,2) NOT NULL COMMENT '价格,保留2位小数'
其中的(20,2):代表18个整数位和2个小数位
修改ROOT密码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'root';
以前的授权方式就会报错
mysql> grant all privileges on *.* to 'root'@'%' identified by "iOuytErss8!";
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'identified by "iOuytErss8!"' at line 1
新授权方式 ,需要先创建用户和设置密码,然后才能授权。
创建一个用户
create user 'superroot'@'%' identified WITH mysql_native_password by 'root';
ALTER USER 'superroot'@'%' IDENTIFIED WITH mysql_native_password BY 'root';
再进行授权
grant all privileges on *.* to 'superroot'@'%' with grant option;
刷新权限
FLUSH PRIVILEGES;
Linux中重置MySQL密码
-
设置MySQL为无密码启动
修改MySQL的登录设置:
vi /etc/my.cnf (部分Linux安装了vim,其命令则改为vim /etc/my.cnf)
在
[mysqld]
的段中加上一句:skip-grant-tables
保存并退出vi。(截图所示,要把#号去掉,如果没有这一句,则手动输入进去,输入完了之后保存退出,记得不要输入#) -
重新启动
mysqld
,清空密码-
重启
mysql
:service mysqld restart
这一步不能少,这是让
my.cnf
的修改生效 -
进入
mysql
:mysql -u root
-
进入
mysql
后,切换数据库至mysql
:use mysql;
-
清空密码:
update user set authentication_string='' where user='root';
-
退出
mysql
:exit
-
-
重设密码
- 重启
mysql
:service mysqld restart
- 进入
mysql
:mysql -u root
- 进入
mysql
后,切换数据库至mysql
:use mysql;
- 设置密码:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'root';
- 重启