MySQL笔记


MySQL在不删除数据时,同时重新更新主键ID

  1. 删除原有主键

    ALTER TABLE `table_name` DROP `id`;
  2. 添加新的主键字段

    ALTER TABLE `table_name` ADD `id` MEDIUMINT( 8 ) NOT NULL FIRST;
  3. 设置新主键

    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基础操作

  1. 创建数据库命令:mysql> create database <数据库名>
  2. 显示所有的数据库命令:mysql> show databases (注意:最后有个s)
  3. 删除数据库命令:mysql> drop database <数据库名>
  4. 进入数据库命令:mysql> use <数据库名>
  5. 转换编码命令:mysql> set names gbk
  6. 查看当前使用的数据库命令:mysql> select database();
  7. 当前数据库所有的表信息命令:mysql> show tables (注意:最后有个s);
  8. 导出数据库命令:mysqldump -h(域名) -u(帐号) -p(密码) 数据库名 > 本地路径+文件名; (注意:导出数据库前必须先要退出MySQL控制台。还有导出的文件后缀名一般都是使用 .sql)
  9. 导入数据库命令:首先登入MySQL控制台C:\Users\admin> mysql -h(域名,可填或不填) -u(账号) -p(密码); 在进入数据库mysql> use <数据库>; 在导入数据库mysql> source E:/school.sql (注意:source 后面是你sql文件所在的绝对路径)
  10. 在MySQL的表中增加字段命令:mysql> alter table <表名> add column userid smallint not null primary key auto_increment; 这样,就在这张表dbname中添加了一个字段userid,类型为smallint
  11. 删除表命令:mysql> drop table student
  12. 清空表命令:mysql> delete from student
  13. 更新表命令:mysql> update student setname='小A' whereid=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密码

  1. 设置MySQL为无密码启动

    修改MySQL的登录设置:

    vi /etc/my.cnf (部分Linux安装了vim,其命令则改为vim /etc/my.cnf)

    [mysqld]的段中加上一句:skip-grant-tables保存并退出vi。(截图所示,要把#号去掉,如果没有这一句,则手动输入进去,输入完了之后保存退出,记得不要输入#)

  2. 重新启动mysqld,清空密码

    1. 重启mysql: service mysqld restart

      这一步不能少,这是让my.cnf的修改生效

    2. 进入mysqlmysql -u root

    3. 进入mysql后,切换数据库至mysqluse mysql;

    4. 清空密码:update user set authentication_string='' where user='root';

    5. 退出mysqlexit

  3. 重设密码

    1. 重启mysqlservice mysqld restart
    2. 进入mysqlmysql -u root
    3. 进入mysql后,切换数据库至mysqluse mysql;
    4. 设置密码:ALTER USER 'root'@'localhost' IDENTIFIED BY 'root';

MySQL5.7版本出现Incorrect DECIMAL value: '0' for column '' at row -1解决办法

查找数据库的配置文件:my.ini

如果有sql-mode,就将他修改为如下内容,没有就新增如下内容:

sql-mode="NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"

然后进行重启mysql服务即可

1588302148732


文章作者: Virus
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Virus !
 上一篇
数据结构和算法 数据结构和算法
数据结构 数据结构包括 线性结构(数据元素之间存在一对一的线性关系) 顺序存储结构(数组) 顺序存储的线性表为顺序表,顺序表中的元素是连续的 链式存储结构 (链表) 链式存储的线性表为链表,链表存储元素不一定连续,元素节点中存储数据
下一篇 
git操作 git操作
生成SSH KEY 下载git.exe这个就不用说了吧。。。 下完之后会有个git bash,打开这个 输入命令 ssh-keygen -t rsa -C "email@email.com" # "email@email.com"是你的g
2020-04-04
  目录