mysql常用命令

mysql作为开发常用数据库,提供了高性能的持久化服务,很多中小企业采用该数据库进行数据存储。作为开发者,在自己的linux服务器上搭建自己的mysql数据库,并修改端口,密码配置,并进行常用的增删改查操作显得尤为重要。下面是详细内容:

linux安装mysql

  • 由于我这边是安装solr时一起安装的mysql具体安装教程我贴个链接吧 传送门

    mysql端口查看 密码修改 不同版本影响

  • !!!要查看注意自己mysql的版本号

    查看版本号:

    1
    2
    3
    4
    5
    6
    7
    mysql> select version();
    +-----------+
    | version() |
    +-----------+
    | 8.0.14 |
    +-----------+
    1 row in set (0.00 sec)
  • ps:在mysql不同的版本 修改密码的sql语句不同

    查看默认端口:

    1
    2
    3
    4
    5
    6
    7
    mysql> show global variables like 'port';  
    +---------------+-------+
    | Variable_name | Value |
    +---------------+-------+
    | port | 3306 |
    +---------------+-------+
    1 row in set (0.00 sec)

修改linux默认端口

  • cd /etc/my.cnf
  • 修改两处 客户端的port=3306 和mysqld的服务器端口port=3306

    1
    2
    3
    4
    5
    6
    [client]
    port=3306


    [mysqld]
    port=3306
  • 重启mysql服务器即可

    查询用户密码:

  • mysql8.0查询用户密码命令:

    1
    mysql> select host,user,authentication_string from mysql.user;
  • host:允许用户登录的ip‘位置’%表示可以远程;

  • user:当前数据库的用户名;
  • authentication_string: 用户密码(后面有提到此字段);

设置(或修改)root用户密码

默认root密码为空的话 ,下面使用远程窗口就无法连接,包括mysql -u root 命令都只能在配置不校验密码参数后才可链接,所以我们需要修改root的密码。

修改密码由于版本的问题很多教程不适用,后来才知道在mysql 5.7.9以后废弃了password字段和password()函数;authentication_string:字段表示用户密码。

下面直接演示正确修改root密码的步骤:

一、如果当前root用户authentication_string字段下有内容,先将其设置为空,否则直接进行二步骤。

1
2
use mysql;
update user set authentication_string='' where user='root'

二、使用ALTER修改root用户密码,方法为 ALTER user ‘root‘@’localhost’ IDENTIFIED BY ‘新密码’。如下:

1
ALTER user 'root'@'localhost' IDENTIFIED BY 'Cliu123#'

此处有两点需要注意:
1、不需要flush privileges来刷新权限。
2、密码要包含大写字母,小写字母,数字,特殊符号。
  修改成功; 重新使用用户名密码登录即可;

注意: 一定不要采取如下形式该密码:

1
2
3
use mysql;

update user set authentication_string="newpassword" where user="root";

这样会给user表中root用户的authentication_string字段下设置了newpassword值;
当再使用

1
ALTER USER 'root'@'localhost' IDENTIFITED BY 'newpassword'

时会报错的;
因为authentication_string字段下只能是mysql加密后的41位字符串密码;其他的会报格式错误;
*THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE
至此,安装mysql和修改root密码告一段落。

使用navicat远程连接mysql

修改user表,使得mysql支持远程连接
1
2
mysql> use mysql;
mysql> update user set Host='%' where user = 'root';
账号密码都正确,连接报错1251。

首先我们看看这个改动:
在MySQL 8.04前,执行:

1
SET PASSWORD=PASSWORD('[新密码]');

但是MySQL8.0.4开始,这样默认是不行的。因为之前,MySQL的密码认证插件是“mysql_native_password”,而现在使用的是“caching_sha2_password”。

所以,我们这里需要再次修改一次root密码。

先登录进入mysql环境:执行下面三个命令。(记得带上分号)

1
2
3
4
5
use mysql;

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码';

FLUSH PRIVILEGES;

再尝试连接发现成功

mysql常用增删改查命令

数据表操作

1.创建数据表

1
mysql> create table courses(name char(20) not null, age tinyint unsigned, gender char(1) not null);

2.删除表

1
mysql> DROP TABLE table_name ;

3.修改表
 3.1增加字段

1
mysql> ALTER TABLE testalter_tbl ADD i INT;#增加i字段;

 3.2修改字段属性:

1
mysql>ALTER TABLE testalter_tbl MODIFY c CHAR(10); #改变testalter_tbl的c为char(10);

数据操作

1.插入数据

1
INSERT INTO 表名(字段1,字段2,…) VALUES(字段1的值,字段2的值,…)

2.修改数据

1
mysql>UPDATE table_name SET field1=new-value1, field2=new-value2;

3.删除数据

1
mysql>delete from students where Course='wg';

4.查询数据

1
mysql> select count(*) from tab_name order by id [DESC|ASC]; #DESC倒序/ASC正序

0%