MYSQL-基础命令

**************************************************************************************************
Linux环境下【myslq> 命令不区分大小写】

【环境准备】
安装mysql服务:
  [linux-shell]$ sudo apt install mysql-server
启动mysql服务:
  [linux-shell]$ sudo service mysql start
登录进mysql服务:
  [linux-shell]$ mysql -u root // -u 用户名(默认root用户没有密码)
有密码的用户登录需要加上命令行传参-p 然后回车再输入密码:
  [linux-shell]$ mysql -u root -p // 敲回车后会提示输入密码,将root用户密码输入即可登录

/**************************************************************************************************

远程登录数据库:
  需要命令行传参-h 指定mysql所在的IP地址:
    [linux-shell]$ mysql -h 192.168.1.56 -u user57 -p
  远程登录的情况,需要数据库服务器上有可以用于远程登录的用户,并且登录IP限制要符合规范。
  比如:数据库在服务器1.56上,现在需要在1.57的机器上登录1.156的mysql;要满足如下几点:
  1.两台设备(1.56与1.57)网络连接正常(可以互相ping通)。
  2.数据库服务器(1.56)上mysql中的用户有可以从1.57登录的用户;比如:'user57'@'192.168.1.57' 或者 'userall'@'%'...满足规则的均可。
  3.每个用户有对应的权限,如需远程操作mysql,就要保证登录的用户权限足够。

**************************************************************************************************/

首次登陆后需要设置root用户密码:
  mysql> flush privileges; // 在skip-grant-table模式加了新用户后,需要先刷新用户表;
  mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'root123'; // 把root用户的密码设置为root123
退出mysql:
  mysql> quit; 或 ctrl+D;
停止mysql服务:
  [linux-shell]$ sudo service mysql stop

/**************************************************************************************************

当新安装的数据库,root用户登陆报错(Access denied for user 'root'@'localhost')
需要设置root用户的密码与plugin:
1. 先在mysql配置文件中将登陆验证关闭:
  [linux-shell]$ sudo vim /etc/mysql/mysql.conf.d/mysql.conf
  在打开的mysql.conf文件中,在[mysqld]项下单独添加一行: skip-grant-tables
  保存退出。
2. 重启mysql服务:
  [linux-shell]$ sudo /etc/init.d/mysql restart
3. 登陆mysql服务:
  [linux-shell]$ mysql
4. 在mysql服务中选择mysql数据库:
  mysql> use mysql; // 可以使用 show databases; 查看所有数据库
5. 设置root用户密码为root:
  mysql> update user set authentication_string=password("root") where user="root";
6. 刷新权限:
  mysql> flush privileges;
7. 设置root用户的plugin为mysql_native_password:
  mysql> update user set authentication_string=password("root"),plugin='mysql_native_password' where user='root';
  // 可以查看当前所有用户的plugin:mysql> select user,plugin from user;
8. 退出mysql服务,还原配置文件,然后重启mysql服务
  mysql> quit;
  [linux-shell]$ sudo vim /etc/mysql/mysql.conf.d/mysql.conf
  // 将添加行 skip-grant-tables 注释或者删除,后保存退出
  [linux-shell]$ sudo /etc/init.d/mysql restart
9. 即可使用root用户登录:
  [linux-shell]$ mysql -u root -p // 然后回车后,输入密码 root

**************************************************************************************************/

【用户操作】
查看所有用户:
  mysql> select distinct concat('User: ''',user,'''@''',host,''';') AS query FROM mysql.user;

创建用户并指定登录IP,'用户名'@'登录IP' 密码为'liubei123':
  mysql> create user 'liubei'@'192.168.1.157' identified with mysql_native_password by 'liubei123';

此处指定登录IP的形式有多种,可根据不同情景使用不同的方式;
  限制来源的IP地址: 'liubei'@'192.168.1.157'
  限制来源的IP网段: 'liubei'@'192.168.1.%' // % 表示任意
  不限制来源IP: 'liubei'@'%' // 默认IP地址为 %
修改用户
  rename user '用户名'@'IP地址' to '新用户名'@'IP地址';

删除用户:
  mysql> drop user 'liubei'@'192.168.1.157';


【数据库&表操作】
创建数据库:
  创建testdb1数据库:
    mysql> create database testdb1;
  创建testdb2数据库,采用utf8编码格式:
    mysql> create database testdb2 CHARACTER SET utf8 COLLATE utf8_general_ci;
  创建testdb3数据库,采用gbk编码格式:
    mysql> create database testdb3 CHARACTER SET gbk COLLATE gbk_chinese_ci
查看现有数据库:
  mysql> show databases;
删除数据库:
  mysql> drop database 数据库名;
  示例-删除数据库testdb1: mysql> drop database testdb1;

[表操作]:
所有的表都存在于数据库中,在操作表之前,需要先选择操作的数据库:
  mysql> use 数据库名; 示例:mysql> use testdb;

选择数据库后,所有的表操作,只针对于当前数据库;
  创建表[]内的内容可选:
    create table 表名(
      列名 类型 [(宽度) 约束条件],
      列名 类型 [(宽度) 约束条件]
    );
  示例:
    mysql> create table tab(
      -> id int,
      -> name varchar(50),
      -> age int(3),
      -> sex eumn('male','female'),
      -> phone int(11)
      -> );
查看表结构:

   mysql> desc 表名; 示例: mysql> desc tab;
查看表内容:

  mysql> select * from 表名; 示例: mysql> select * from tab;


在表中插入数据:
  方法1: mysql> insert into tab(id,name,age,sex,phone) values (1,'YuPiao',23,'female',18282063498);
  方法2: mysql> insert into tab values (2,'LiuYaLin',24,'female',18398605362);
  方法4: mysql> insert into tab values (3,'LiuDuan',22,'female',15282637173),(4,'LiuLiMei',23,'female',15883378741);

从表中删除数据:

  mysql> delete from 表名 where 字段名 = 被删除的特征值;
  示例: mysql> delete from tab where id = 5; // 删除表中id = 5的所有行;
  mysql> delete from tab where name = 'xxx'; // 删除表中name为'xxx'的所有行;

删除表:

   mysql> drop table 表名; 示例: mysql> drop table tab;

*修改表结构:
1. 修改表名
  ALTER TABLE 表名 RENAME 新表名; 示例: mysql> ALTER TABLE tab RENAME tab_new;
2. 增加字段
  ALTER TABLE 表名 ADD 字段名 数据类型 [完整性约束条件…], ADD 字段名 数据类型 [完整性约束条件…];
  示例: mysql> ALTER TABLE tab_new
      -> ADD age1 int(3),
      -> ADD age2 int;
3. 删除字段
  ALTER TABLE 表名 DROP 字段名; 示例: mysql> ALTER TABLE tab_new DROP age1, DROP age2;
4. 修改字段
  ALTER TABLE 表名
  MODIFY 字段名 数据类型 [完整性约束条件…];
  ALTER TABLE 表名
  CHANGE 旧字段名 新字段名 旧数据类型 [完整性约束条件…];
  ALTER TABLE 表名
  CHANGE 旧字段名 新字段名 新数据类型 [完整性约束条件…];

 

 

 

 

 

 

 

 

posted on 2021-09-10 09:39  为何学习  阅读(53)  评论(0编辑  收藏  举报