|   注册

常用命令

设置root账户

# 新密码
mysql_secure_installation

# 登陆
mysql -uroot -p

# 设置新密码
mysqladmin -u root -password <新密码>

# 修改密码
mysqladmin -u root -p <旧密码> password <新密码>

# 重启MariaDB
systemctl restart mariadb

创建用户

# 创建新用户
'<用户名>'@'<localhost>' IDENTIFIED BY '<密码>';

# 添加权限
grant SELECT,INSERT,UPDATE,DELETE on '<指定数据库>' to '<用户名>'@'localhost';

# 显示所有用户
select host,user from mysql.user;

# 删除用户
drop user '<用户名>'@'localhost';

数据库

# 查看
show databases;

# 使用
use `<数据库名>`;

# 查看数据库编码
show variables like 'character_set_database';

# 新建数据库
create database `<数据库名>`;
# 新建数据库并设置编码
create database `<数据库名>` default character set <utf8> collate <utf8_general_ci>;
# 更改数据库编码
alter database `<数据库名>` default character set <utf8> collate <utf8_general_ci>;

# 删除
drop database `<数据库名>`;

数据表

# 查看
show tables;

# 创建数据表
create table `<数据库名>`.`<表名>`;

# 查看编码
show create table `<表名>`;
# 修改编码格式
alter table `<表名>` character set <utf8>;

# 删除
drop table `<表名>`;

字段

# 查看
show create table `<表名>`;
# 字段列信息
show columns from `<表名>`
# 索引信息
show index from `<表名>`

# 添加
alter table `<表名>` add `<字段名>` varchar(6) not null COMMENT '<备注>' AFTER `<字段后>`;

# 修改
alter table `<表名>` change `<字段名>` `<字段名>` varchar(12) character set utf8 COLLATE utf8_general_ci NOT NULL COMMENT '<备注>';

# 删除
alter table `<表名>` drop `<字段名>`;

索引

# 添加索引
alter table `<数据库名>`.`<表名>` ADD PRIMARY KEY (`<字段1>`(长度), `<字段2>`(长度));
# - PRIMARY 主键,唯一不能为空。
# - INDEX 索引,普通的。
# - UNIQUE 唯一索引,不允许有重复可以为空。
# - FULLTEXT 是全文索引,用于在一篇文章中,检索文本信息的。

# 删除索引
alter table `<表名>` DROP INDEX `<字段>`;

外键

# 创建数据库
create database `test` default character set utf8 collate utf8_general_ci;

# 用户基础表
CREATE TABLE `test`.`user` (
    `id` SMALLINT(6) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 'ID' ,
    `name` VARCHAR(12) NOT NULL COMMENT '姓名' ,
    `sex` ENUM('男','女') NOT NULL DEFAULT '男' COMMENT '性别' ,
    `age` TINYINT(3) NOT NULL DEFAULT 20 COMMENT '年龄' ,
    PRIMARY KEY (`id`)
) ENGINE = InnoDB;

# 用户信息表
CREATE TABLE `test`.`user_info` (
    `id` SMALLINT(6) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 'ID' ,
    `uid` SMALLINT(6) UNSIGNED NOT NULL COMMENT 'UID' ,
    `content` TEXT NOT NULL DEFAULT '' COMMENT '内容' ,
    PRIMARY KEY (`id`),
) ENGINE = InnoDB;

# 添加索引
alter table `test`.`user_info` ADD PRIMARY KEY (`uid`);

# 添加外键
ALTER TABLE `user` ADD CONSTRAINT `<外键名称>` FOREIGN KEY (`id`) REFERENCES `user_info`(`uid`) ON DELETE RESTRICT ON UPDATE RESTRICT;
# - CASCADE 在父表上update/delete记录时,同步update/delete掉子表的匹配记录 
# - SET NULL 在父表上update/delete记录时,将子表上匹配记录的列设为null (要注意子表的外键列不能为not null)  
# - NO ACTION 如果子表中有匹配的记录,则不允许对父表对应候选键进行update/delete操作  
# - RESTRICT 同no action, 都是立即检查外键约束

# 删除外键
alter table test.user DROP FOREIGN KEY `<外键名称>`;

数据

# 查询
SELECT * FROM `user` WHERE id=1;

# 添加
INSERT INTO `user`( `name`, `sex`, `age`) VALUES ('张三','1',25);

# 更新
UPDATE `user` SET `name`='李四',`sex`='2',`age`=20 WHERE id=1;

# 删除
DELETE FROM `user` WHERE id=1;

备份和恢复

vi /home/mysql.sh

1) MySQL备份

#!/bin/bash
uname=root
passwd=***
dbname=***
path=***_`date '+%Y-%m-%d'`.sql
mysqldump -u$uname -p$passwd --databases $dbname --lock-all-tables --flush-logs > $path

2) MySQL恢复

#!/bin/bash
mysql -u$uname -p$passwd $dbname < $path

3) 定时执行(每天23:30执行备份)

# 添加定时
crontab -e
# 内容
30 23 * * * sh /home/mysql.sh

4) 备份差异到本地目录

rsync -rvu --delete root@IP:/home/test/ /home/test

5) 数据恢复

mysql -u 用户名 -p密码 数据库名 < 备份的数据库.sql

SSH免密码登录

方法一:

# 生成公钥
ssh-keygen -t rsa
# 将公钥放到服务器上
scp ~/.ssh/id_rsa.pub root@IP:~/.ssh/authorized_keys

方法二:

pacman -S sshpass
sshpass -p '你的密码' ssh root@IP

WebMIS

基于MVC框架开发的多用户、多权限开源解决方案,整合了Jquery、TinyMCE、ChartJS等插件!

视频教程
Linux教程
PHP教程
JavaScript教程
MVC框架
自建HMVC框架
Phalcon框架
Lumen框架
Linux文档
Shell文档
CentOS文档
Archlinux文档
WebMIS © 2017-2020 备案号: 滇ICP备14000710号
https://webmis.vip/home/