网站打包备份到百度网盘方法

我以前网站放在国外vps上一直是备份到dropbox的,但是因为dropbox免费版只有2g的容量,所以我一直都是删除前一天的备份,一直有点拮据。现在把网站放到国内vps上来了,当然是要备份到国内的网盘了

nodejs连接远程mysql常见问题

Error: connect ETIMEDOUT

应该是mariadb默认只允许本地连接,修改 /etc/mysql/mariadb.conf.d/50-server.cnf 文件

然后将 bind-address 127.0.0.1 改成 0.0.0.0 然后重启mysql

Error: ER_HOST_NOT_PRIVILEGED: Host ‘xxx’ is not allowed to connect to this MariaDB server

这种是你登录的用户只允许本地连接

USE mysql;
SELECT user,host FROM user;

// 这样可以看到你的用户和权限,把localhost改成你的ip或者改成 % 允许所有ip登录

GRANT ALL PRIVILEGES ON *.* TO username@'%' IDENTIFIED BY 'passwd' WITH GRANT OPTION;

上面该权限的代码要注意 用户名 不用加单引号,%要加,密码要加

参见 Configuring database connection results in Error: Host ‘xxxxxxx’ is not allowed to connect to this MySQL server – Atlassian Documentation

MySQL无法连接远程数据库error 10061

ubuntu18.04下安装的mariadb无法远程连接

修改 /etc/mysql/mariadb.conf.d/50-server.cnf 文件

bind-address 127.0.0.1中的地址改成0.0.0.0

参考地址 https://www.digitalocean.com/community/questions/can-t-connect-to-mysql-server-on-ipaddress-10061

[简记]MySQL学习笔记(5)索引视图、备份还原

推荐阅读:

基础篇 – 其他基本操作 – 实验楼


索引

索引是存放在模式(schema)中的一个数据库对象,索引的作用就是提高对表的检索查询速度,索引是通过快速访问的方法来进行快速定位数据,从而减少了对磁盘的读写操作。

索引类似于书籍的目录,可以快速定位到相关的数据,一个表可以有多个索引。

//创建索引
create index idx_temp_name on temp(name);
//组合索引
create index idx_temp_name$pwd on temp(name, pwd);
//删除索引
drop index idx_temp_name on temp;

视图

视图就是一个表或多个表的查询结果,它是一张虚拟的表,因为它并不能存储数据。

//创建、修改视图
create or replace view view_temp as select name, age from temp;
//通常不对视图的数据做修改操作,因为视图是一张虚拟的表,它并不存储实际数据。如果想让视图不被修改,可以用with check option来完成限制。
create or replace view view_temp as  select *from temp with check option;
//删除视图
drop view view_temp;
//显示创建语法
show create view v_temp;

导入

导入操作,可以把一个文件里的数据保存进一张表。导入语句格式为:

LOAD DATA INFILE '文件路径和文件名' INTO TABLE 表名字;

导出

导出与导入是相反的过程,是把数据库某个表中的数据保存到一个文件之中。导出语句基本格式为:

SELECT 列1,列2 INTO OUTFILE '文件路径和文件名' FROM 表名字;

备份

mysqldump 是 MySQL 用于备份数据库的实用程序。它主要产生一个 SQL 脚本文件,其中包含从头重新创建数据库所必需的命令CREATE TABLE INSERT 等。

使用 mysqldump 备份的语句:

mysqldump -u root 数据库名>备份文件名;   #备份整个数据库
mysqldump -u root 数据库名 表名字>备份文件名;  #备份整个表

恢复

source /tmp/SQL6/MySQL-06.sql
// 把备份的 bak.sql 恢复到 test 数据库:
mysql -u root test < bak.sql

MySQL学习笔记(3)简单SELECT语句

本文用来总结,推荐阅读


SELECT 语句用于从表中选取数据。

结果被存储在一个结果表中(称为结果集)。

用法:

SELECT 要查询的列名 FROM 表名字 WHERE 限制条件;

可用*代替可输出所有的列

数学符号条件

where限制条件可加入数学符号=,<,>,>=,<=

例如:

SELECT * FROM sstud WHERE age>=25;
SELECT * FROM sstud WHERE name='join';

AND OR

WHERE后面可以有不止一条限制,而根据条件之间的逻辑关系,可以用OR(||)AND(&&)连接:

例如:

SELECT * FROM sstud WHERE age>=23 AND age<=25 ;
SELECT * FROM sstud WHERE age=23 OR age=25;
SELECT * FROM sstud WHERE age BETWEEN 23 AND 25;

IN 和 NOT IN

INNOT IN表示在或不在。例如下面的语句用来查询在in_dpt是dpt3或dpt4中的数据。

SELECT name,age,phone,in_dpt FROM employee WHERE in_dpt IN ('dpt3','dpt4');

NOT IN相反,用来查询某值不为某值中的数据。

通配符

关键字LIKE在SQL语句中和通配符一起使用,通配符代表未知字符。SQL中的通配符是_%。其中_代表一个未指定字符,%代表不定个未指定字符。

比如,要只记得电话号码前四位数为1101,而后两位忘记了,则可以用两个_通配符代替:

SELECT name,age,phone  FROM employee WHERE phone LIKE '1101__';

排序

SQL可以使用ORDER BY关键词对表进行排序。默认情况下,ORDER BY的结果是升序排列,而使用关键词ASCDESC可指定升序或降序排序。

比如,我们按salary降序排列,SQL语句为:

SELECT name,age,salary,phone FROM employee ORDER BY salary DESC;

内置函数和计算

SQL 允许对表中的数据进行计算。对此,SQL 有 5 个内置函数,这些函数都对SELECT的结果做操作:

函数名:COUNTSUMAVGMAXMIN
作用:计数求和求平均值最大值最小值

其中 COUNT 函数可用于任何数据类型(因为它只是计数),而 SUM 、AVG 函数都只能对数字类数据类型做计算,MAX 和 MIN 可用于数值、字符串或是日期时间数据类型。

select count(Code) FROM Car 查询Car表中有多少条数据
select max(Price) FROM Car  取Car表中价格的最大值
select min(Price) FROM Car  取Car表中价格的最小值
select sum(Price) FROM Car  取Car表中价格的总和
select avg(Price) FROM Car  取Car表中价格的平均值

MySQL学习笔记(2)约束

约束是一种限制,它通过对表的行或列的数据做出限制,来确保表的数据的完整性、唯一性。

MYSQL中,常用的几种约束:

| 约束类型: | 主键 | 默认值 | 唯一 | 外键 | 非空|
| 关键字:| PRIMARY KEY | DEFAULT | UNIQUE | FOREIGN KEY | NOT NULL|

默认约束

默认值约束 (DEFAULT) 规定,当有 DEFAULT 约束的列,插入数据为空时,将使用默认值。

添加默认约束

CREATE TABLE student(
  joinTime DATETIME DEFAULT CURRENT_TIMESTAMP
 );

CURRENT_TIMESTAMP为当前时间

主键约束

主键约束列不允许重复,即任意两行的主键值都不相同;每行都具有一个主键值,也不允许出现空值;

添加主键

CREATE TABLE student(
  id INT PRIMARY KEY,
  name VARCHAR(20),
)

为已存在的表添加主键

alter table user
add primary key(id),
modify id bigint(20) AUTO_INCREMENT;

删除主键

alter table user
drop primary key,
modify id bigint(20);

外键约束

外键用来指定参照完整性约束,被指定为外键的列必需要有索引,外键参考列必需为另一个表的主键。

创建外键约束

例如表user(id,username)和表article(id,uid,title),其中article.uid是外键指向user.id主键

CREATE TABLE article (
  id bigint(20),
  uid bigint(20),
  PRIMARY KEY (id),
  CONSTRAINT fk_user_article_uid FOREIGN KEY (uid) REFERENCES user(id)
);

为没有外键约束的表添加外键约束

alter table article
add constraint fk_user_article_uid FOREIGN KEY(uid) REFERENCES user(id);

删除外键

例如删除article表的外键fk_user_article_uid

alter table article
drop foreign key fk_user_article_uid;

唯一约束

唯一约束的列的值不能重复,使用UNIQUE KEY关键字指定

创建表时添加唯一约束

create table user(
  id bigint(20) PRIMARY KEY AUTO_INCREMENT,
  email varchar(255) UNIQUE KEY
);

为已存在的表添加唯一约束

alter table user
add constraint uk_user_email UNIQUE KEY(email);

删除唯一约束

alter table user
drop key uk_user_email;

非空约束

指定为非空的字段不能取NULL

创建表时添加非空约束

create table user (
  id bigint(20) PRIMARY KEY AUTO_INCREMENT,
  email varchar(255) NOT NULL
);

为已存在的表添加非空约束

alter table user
modify column email varchar(255);

[简记]MySQL学习笔记(1)创建数据库插入数据

首先启动mysql服务并登陆

mysql -u root

使用show databases;查看所有的数据库

创建数据库

CREATE DATABASE mysql_data;

mysql不区分大小写,但为了区分保留字,所以建议关键字使用全大写

定位到某个数据库

use mysql_data;

显示该数据库下的数据表

show tables;

创建数据表

CREATE TABLE table1 (
  rowa int(10),
  rowb char(20),
  rowc int(20)
);

数据类型

数据类型大小(字节)用途格式
INT4整数
FLOAT4单精度浮点数
DOUBLE8双精度浮点数
ENUM单选,比如性别ENUM(‘a’,’b’,’c’)
SET多选SET(‘1′,’2′,’3’)
DATE3日期YYYY-MM-DD
TIME3时间点或持续时间HH:MM:SS
YEAR1年份值 YYYY
CHAR0~255定长字符串
VARCHAR0~255 变长字符串
TEXT0~65535长文本数据

插入数据

显示该数据表下的所有数据

SELECT * FROM table1;

插入数据

INSERT INTO table1(rowname) VALUES(value)

或者直接

INSERT INTO table1 VALUES(value, value2)

一些数据类型需要用单引号括起来,一些数字类型则不用

没有指定的列的值为NULL