访问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)