Linux下使用MySql数据库
MySql是一套给用户提供数据存取的服务的网络程序,数据库一般指的是在磁盘或者内存中存储的特定结构组织的数据。MySql本质:基于C(mysql)S(mysqld)模式的一种网络服务,数据库服务-mysqld。
环境配置
ps ajx|grep mysql 查看mysql
rpm -qa|grep mysql 查看mysql安装包
rpm -qa|grep mysql|xargs yum -y remove 卸载mysql安装包
cat /etc/redhat -release 查看版本号
ls /etc/yum.repos.d/ -l 查看系统默认支持的yum源
yum list|grep mysql 查看mysql的yum源
yum install -y mysql-community-server 安装mysql
ls /etc/my.cnf 查看是否安装成功
which mysqld 查看mysql服务端应用程序
which mysql 查看mysql客户端
systemctl start mysqld 启动mysql服务
systemctl stop mysqld 停止mysql服务
systemctl restart mysqld 重启mysql服务
netstat -nltp 查看mysql对应服务端口号
vim /etc/my.cnf 打开mysql配置文件
添加: skip-grant-tables 跳过密码认证
systemctl enable mysqld/systemctl daemon-reload 开机自启动
system clear;/ctrl+l 清屏
mysql语句分类
mysql语句
登录
mysql -uroot -p 登录mysql
一般情况下登录mysql的命令是:mysql -h 127.0.0.1 -p 3306 -u root -p 密码
-h后面指明登录部署mysql服务的主机
-p后面指明要访问的端口号
-u后面指明用户
-p后面输入用户密码
select user(); 查看当前用户名和ip
操作
show databases; 显示所有数据库
create database xxx;建立一个名为xxx的数据库
use xxx;使用xxx数据库
建立数据库,本质就是建立Linux下的一个目录。在数据库内建表,本质就是在Linux下创建对应的文件即可。数据库本质其实也是文件!只不过这些文件并不由程序员直接操作,而是由数据库服务(mysqld)帮我们进行操作。
show tables;查看数据库中的所有表
desc xxx;查看xxx表结构
select* from xxx;查看xxx表中数据
show engines;查看存储引擎
show charset;查看数据库支持的字符集
show variables like 'collation_database';查看系统默认字符集及校验规则
创建数据库的时候,有两个编码集(数据库无论对数据进行任何操作,都必须保证操作和编码必须一致):
1.数据库编码集--数据库未来存储数据。
2.数据库校验集--支持数据库进行字段比较使用的编码。本质也是一种读取数据库中数据采用的编码格式。
create database xxx charset=utf8;/create database xxx charact set utf8;创建名为xxx使用utf8字符集的数据库
create database xxx charset=utf8 collate utf8_general_ci;创建名为xxx使用utf8字符集和校验规则的数据库
drop database xxx;删除名为xxx的数据库
create table student(//建立一个名为student的数据表
name varchar(32);
age int;
);
insert into student (name,age) values('张三',20);向表中插入数据
update 表名 set 列名1=xxx where 列名2=xxx;更改列名2中列名1的数据
truncate 表名;清空表中数据(计数器归1,delete数据计数器不变)
create table 新表名 like 原表名;创建一个跟原来一样的新表
insert into 新表名 select distinct* from 原表名;把原表中的数据去重插入新表
rename table 原表名 to 新表名;表重命名
select* from 表名 where 字段名='xxx';查找表中xxx字段名的数据
select* from 表名 order by 字段名 acs;对表中字段进行升序排序(默认升序)
select* from 表名 order by 字段名 desc;对表中字段进行降序排序
select database();查看自己当前在哪个数据库里
alter database 库名 新内容;修改数据库的内容
show create database 库名;查看创建数据库的库名
备份
source /home/xx/xx/xx.sql;还原sql
mysqldump -p 3306 -u root -p 密码 -B 数据库名 > 数据库备份存储的文件路径
mysqldump -u root -p 数据库名 表名1 表名2 > 文件路径 备份数据库的表
mysqldump -u root -p -B 数据库名1 数据库名2 ...>文件路径 备份多个数据库
如果备份一个数据库时,没有带上-B参数,在恢复数据库时,需要先创建空数据库,然后使用数据库,再使用source来还原
show processlist;显示操作数据库的所有用户及命令
权限
create user '用户名' @'登陆主机(localhost本机)/ip' identified by '密码';创建用户
flush privileges;刷新内存
drop user '用户名'@'主机名';删除用户
set password= password ('新密码');普通用户修改密码
set password for '用户名' @ '主机名'= password('新密码');root用户修改指定用户密码
grant 权限列表 on 库名.表名 to '用户名'@'登陆位置'[identified by '密码'];给用户授权
show grants for '用户名'@'主机/ip';查看授权语句
revoke 权限列表 on 库名.表名 from '用户名'@'登陆位置';回收权限