sqlx库
安装:go get github.com/jmoiron/sqlx
mysql 驱动:github.com/go-sql-driver/mysql
关键类型
- sqlx.DB - 代表一个数据库
- sqlx.Tx - 代表一个事务
1 | func timeToTimestamp(date string) int64 { |
加密解密在实际开发中应用比较广泛,常用加解密分为:“对称式”、“非对称式”和”数字签名“。
对称式:对称加密(也叫私钥加密)指加密和解密使用相同密钥的加密算法。具体算法主要有DES算法,3DES算法,TDEA算法,Blowfish算法,RC5算法,IDEA算法。
**非对称加密(公钥加密)**:指加密和解密使用不同密钥的加密算法,也称为公私钥加密。具体算法主要有RSA、Elgamal、背包算法、Rabin、D-H、ECC(椭圆曲线加密算法)。
数字签名:数字签名是非对称密钥加密技术与数字摘要技术的应用。主要算法有md5、hmac、sha1等。
MD5信息摘要算法是一种被广泛使用的密码散列函数,可以产生出一个128位(16进制,32个字符)的散列值(hash value),用于确保信息传输完整一致。
go语言 []interface{} 和 其他 []type 之间的转换
https://stackoverflow.com/questions/27689058/convert-string-to-interface
1 | package main |
以root用户登陆数据库,运行以下命令:create user zhangyi identified by 'password123'
;
用户为 zhangyi,密码是 password123
命令的格式:grant privilegesCode on dbName.tableName to username@host identified by 'password';
例如:grant all privileges on zhangyiDB.* to zhangyi@'%' identified by 'zhangyi';
flush privilleges;
上面的语句将 zhangyiDB 数据库的所有操作权限都授权给了用户zhangyi
可以通过 show grants 命令查看权限授予执行的命令show grants for 'zhangyi';
privilegesCode 表示授予的权限类型,常用的有以下几种类型:
Mysql的系统表空间是 InnoDB数据字典,双写缓冲区、更改缓冲区和撤销日志的存储区。如果用户在系统表空间中创建表,而不是在每个表文件中创建表,则还包含用户在系统表空间创建的表信息和索引数据。
系统表空间可以具有一个或多个数据文件。默认情况下,在数据目录中创建一个名为ibdata1的系统表空间数据文件。系统表空间数据的大小和数量由innodb_data_file_path启动选项定义。
另一种表空间:独立表空间,独立表空间模式下,每个innodb表都有自己独立的表空间文件(.ibd文件),存储各种表的索引和数据。
配置项:innodb_file_per_table 指定Mysql使用独立表空间,Mysql5.6以后的版本默认值为ON,Mysql5.6以前的版本默认为OFF
增加系统表空间大小的最简单办法就是配置为自动扩展,如下:
字符集是指一种从二进制编码到某类字符符号的映射。校对是指一组用于某个字符集的排序规则。在Mysql4.1和之后的版本中,每一类编码字符都有其对应的字符集和校对规则。
Mysql服务器有默认的字符集和校对规则,每个数据库也有自己的默认值,每个表也有自己的默认值。这是一个逐层继承的默认设置,最终最靠底层的默认设置将影响你创建的对象。这些默认值,至上而下的告诉MYSQL应该使用什么字符集来存储某个列。
在这个“阶梯”的每一层,你都可以指定一个特定的字符集或者让服务器使用它的默认值。