以下编写环境是在Ubuntu上操作,安装命令是基于Ubuntu18.4系统
安装
sudo apt-get install mysql-server mysql-client
管理服务
启动
service mysql start
停止
service mysql stop
重启
service mysql restart
允许远程连接
找到MySQL配置文件并修改
sudo vi /etc/mysql/mysql.conf.d/mysql.conf
将bind-address=127.0.0.1注释
登录MySQL,运行修改密码命令
grant all privileges on *.* to 'root'@'%' identified by 'mysql' with grant option;
flush privileges;
重启MySQL即可。
使用命令连接
myslq -uroot -p
回车后输入密码,当前设置的密码为mysql
登录成功后,输入如下命令查看效果
查看版本:select version();
显示当前时间:select now();
远程连接
mysql -h ip地址 -uroot -p
.-h后面写要连接的主机ip地址
。-u后面写连接的用户名
.-p回车后写密码
数据库操作
创建数据库
create database 数据库名 charset=utf8;
删除数据库
drop database 数据库名;
切换数据库
use 数据库名;
查看当前选择的数据库
select database();
表操作
查看当前数据库中所有表
show tables;
创建表
.auto_increment表示自动增长
create table 表名(列及类型):
如:
create table students(
id int auto_increment primary key,
name varchar(10) nor null
);
修改表
alter table 表名 add|change|drop 列名 类型;
如:
alter table students add birthday datetime;
删除表
drop table 表名;
查看表结构
desc 表名;
更改表名称
rename table 原表名 to 新表名;
查看表的创建语句
show create table '表名';
表操作
查询
select * from 表名
增加
全列插入:insert into 表名 values(...);
缺省插入:insert into 表名(列1..) values(值1..);
同时插入多条数据:insert into 表名 values(..),(..);
或insert into 表名(列1..) values(值1.。),(值1..);
主键列是自动增长,但是在全列插入时需要占位,通常使用0,插入成功后是以实际数据为准
修改
update 表名 set 列1=值1,.. where 条件
删除
delete from 表名 where 条件
逻辑删除
本质上就是增加一个isdelete的列,当需要删除某些数据的时候就修改此列。显示的时候还是不显示这个数据即可。
alter table students(表名) add isdelete bit default 0;
如果需要删除则:
update students isdelete=1 where ..;
备份与恢复
备份
.进入超级管理员
sudo -s
.进入mysql库目录
cd /var/lib/mysql
.运行mysqldump命令
mysqldump -uroot -p 数据库名 > /root/bak.sql
按提示输入mysql的密码
数据恢复
连接mysql,创建一个新的数据库 退出连接,执行如下命令
mysql -uroot -p 新的数据库名 < /root/bak.sql
根据提示输入mysql密码