访问mysql数据库

1.登录到mysql数据库

[root@localhost /]# mysql -u root   //-u指定用户登陆 
[root@localhost /]# mysql -u root -p   //-p需要密码验证 
[root@localhost /]# mysql -h 8.8.8.8 -u root  //-h指定服务器地址

默认情况下mysql没有允许远程登录,可以添加授权允许远程登录

登录mysql执行以下命令:

mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '123123' WITH GRANT OPTION;     //允许root用户使用123123密码远程登录
mysql> FLUSH PRIVILEGES;   //刷新权限
update mysql.user set password=('putianhui') where user='root'

2.退出mysql数据库

mysql>环境中执行exit或quit退出mysql命令工具


密码相关操作

更改密码方式一:
mysql> update mysql.user set password=password('123123') where user='root';        //将root用户的密码更改为123123
mysql> flush privileges;   //刷新用户权限信息
更改密码方式二:
[root@localhost ~]# mysqladmin -u root -p'旧密码' password '新密码'
mysqladmin -u root password 123123        //更改root用户的密码
密码忘记找回密码:
[root@localhost /]# vim /etc/my.cnf   //修改mysql配置文件
---------------------------------------添加下行内容----------------------------------
skip-grant-tables     //跳过密码验证
---------------------------------------------------------------------------------------
[root@localhost /]# systemctl restart mysqld  //重启mysql服务
[root@localhost /]# mysql –uroot   //重新使用root登陆

注意:如果更改密码后还是无法登陆,就把user表中user字段和password字段为空的行记录删除,然后刷新权限信息再重试


Mysql常用操作

1. 查看数据库

mysql> show databases;   //查看数据库列表


2. 查看表

mysql> use ceshi;            //切换到ceshi数据库
mysql> show tables;            //查看ceshi数据库都有哪些表


3. 查看表的结构(各字段的信息),要指定库名.表名作为参数,如果只使用表名要先用use切换到目标数据库

方法一:
mysql> describe mysql.user;               //查看mysql数据库user表的结构
方法二:
mysql> use mysql                        //切换到mysql数据库
mysql> describe user;                    //查看user表的结构


4. 创建数据库

mysql> create database ceshi;       //创建一个数据库,名为ceshi


5. 创建表

语法:create table 表名(字段1名称 类型,字段2名称 类型,primary key(主键名));
mysql> create table biao1 (name char(16) not null,passwd char(16) not null,primary key(name));          //创建表名称为biao1,有name列、passwd列,将name列设置为主键


6. 删除一个表,要指定库名.表名作为参数,如果只使用表名要先用use切换到目标数据库

方法一:
mysql> drop table ceshi.biao1;       //删除ceshi库中的biao1
方法二:
mysql> use ceshi;                    //切换到ceshi数据库
mysql> drop table biao1;           //删除biao1


7. 删除数据库

mysql> drop database ceshi;    //删除ceshi数据库


8. 插入数据

语法: insert into 表名(字段1,字段2,) values(字段1的值,字段2的值)
mysql> insert biao1 (name,passwd) values('lisi','123');                //向biao1中插入一条记录name为lisi,passwd为123


9. 查询数据

语法:select 字段名1,字段名2 from 表名 where 条件表达式
mysql> select name,passwd from biao1 where name='lisi';                //查询biao1中name是lisi的name和passwd信息


10. 修改数据

语法: update 表名 set 字段1名=字段1更改后的值 where 条件表达式
mysql> update ceshi.biao1 set passwd='456' where name='lisi';        //将biao1中name是lisi的passwd更改为456

11.删除数据记录,不带条件表达式是删除所有记录

语法:delete from 表名where 条件表达式
mysql> delete from biao1 where name='lisi';          //删除biao1中name是lisi的记录

12.数据库授予权限

GRANT注意事项:

Ø 权限列表:用于列出授权使用的各种数据库操作,以逗号分隔,使用all代表所有权限

Ø 库名.表名:用于指定授权操作的库和表的名车,可以使用通配符”*”表示所有库和表,”ceshi.*”表示ceshi库里的所有表

Ø 用户名@来源地址:用于指定用户名称和允许访问的客户机地址,就是谁能链接,从哪里连接,可以使用通配符“%”表示任何网络,如”%.aptech.com” “192.168.1.%”等

Ø IDENTIFIED BY:用于设置用户连接数据库时所用的密码,新建用户省略此字段则表示用户的密码为空

语法:GRANT 权限列表 ON 库名.表名 TO 用户名@来源地址 [ identified by ‘密码’ ]
mysql> grant all on *.* to 'zhangsan'@'%' identified by 'putianhui';            //新建zhangsan用户授予所有库所有表有所有的权限

13.查询用户的授权信息

语法:show grants for '用户名@'来源地址';
mysql> show grants for 'zhangsan'@'%';  //查询zhangsan用户授权信息

14.撤销用户授权信息,撤销后还能登陆数据库,无法操作

语法:revoke 权限信息 on 库名.表名. from '用户名'@'来源地址';
mysql> revoke all on *.* from 'zhangsan'@'%';         //撤销zhangsan用户的授权信息

15.修改表中列的属性

语法:alter table 表名 modify column 列名 新的列类型
Alter table user modify column 姓名 char(200)         //将user表中姓名列类型改为char(200)