程序员开发实例大全宝库

网站首页 > 编程文章 正文

数据库-MySQL源码安装(数据库源码怎么用)

zazugpt 2024-09-07 21:42:38 编程文章 22 ℃ 0 评论

创建可以无主机限制的账号

create USER 'clibing'@'%' IDENTIFIED BY 'ty88yYMQH0udg1pC';


创建数据库

CREATE SCHEMA IF NOT EXISTS `clibing` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci ;


授权所有数据库权限

grant all on *.* to 'clibing'@'%';

撤销授权所有数据库权限

revoke all on *.* from 'clibing'@'%';


只授权对clibing数据库的所有权限

grant all on clibing.* to 'clibing'@'%';


只授权对clibing数据库的select权限

grant select on clibing.* to 'clibing'@'%'


修改密码

update user set password=password('123456') where user='root' and host='%';

flush privileges;


SET PASSWORD FOR 'root'@'%' = PASSWORD('111111');


fulltext

CREATE TABLE articles (

id INT UNSIGNED AUTO_INCREMENT NOT NULL PRIMARY KEY,

title VARCHAR (200),

body TEXT,

FULLTEXT (title, body) WITH PARSER ngram

) ENGINE = INNODB;

select * from articles where match(title, body) against('key1 key2' in natural language mode)


新库新账号

* 创建数据库

CREATE SCHEMA `TestDB` DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci ;


* 创建用户

create USER 'test-db'@'%' IDENTIFIED BY '123456';


如果出现一下提示,说明已经存在,`use mysql; select user, host from user;`进行查看确认,

删除用户 `drop user 'test-db'@'%'`, 删除后一定要执行 `flush privileges;`

ERROR 1396 (HY000): Operation CREATE USER failed for 'test-db'@'%'


* 授权

grant all on TestDB.* to 'test-db'@'%';


* 验证

mysql -u 'test-db' -p

密码上面设置的 123456


常用错误

* 解决Cannot delete or update a parent row: a foreign key constraint fails报错,即删除带有外键关联的数据

SET foreign_key_checks = 0; // 先设置外键约束检查关闭

drop table table1;

detele from table where ;

// 删除表或数据

SET foreign_key_checks = 1; // 开启外键约束检查,以保持表结构完整性


binlog

方案一

# 设置binlog的过期时间

set global expire_logs_days = 30;

# 切换binglog

flush logs;


方案二

1. show variables like 'log_%';

查看binlog日志是否开启

2. show master logs;

查看所有binlog日志列表

3. show master status;

查看master状态,即最后(最新)一个binlog日志的编号名称,及其最后一个操作事件pos结束点(Position)值。

4. flush logs;

4.1 flush 刷新log日志,自此刻开始产生一个新编号的binlog日志文件;

4.2 注意:每当mysqld服务重启时,会自动执行此命令,刷新binlog日志;在mysqlddump备份数据时加-F选项也会刷新binlog日志;

5. reset master;

重置(清空)所有binlog日志

时间戳格式化

函数 `from_unixtime(timestamp ,date_format)`

* timestamp :时间戳,可为一串数字,也可为字段。

* date_format:时间格式,不填默认为%Y-%m-%d %H:%i:%s的格式。

日期格式

说明

%Y

年,4位数字,如1999

%y

年,2位数字,如00

%M

月,英文月份,如January

%b

月,缩写的月份名字,如Jan

%m

月,数字(01……12)

%c

月,数字(1……12)

%W

星期,名字,如Sunday

%a

星期,缩写的名字,如Sun

%D

天,有英文前缀的天日期,如1st

%d

天,月份中的天数,数字(01……31)

%e

天,月份中的天数,数字(1……31)

%H

小时,数字(00……23)

%k

小时,数字(0……23)

%h

小时,数字(01……12)

%l

小时,数字(1……12)

%r

时间,12 小时(hh:mm:ss [AP]M)

%T

时间,24 小时(hh:mm:ss)

%S

秒(00~59)

%s

秒(00~59)


select from_unixtime(create_time, '%Y-%m-%d %H:%i:%s') from t;


函数 `unix_timestamp()`

unix_timestamp时间戳是自 1970 年 1 月 1 日(00:00:00 GMT)以来的秒数。它也被称为 Unix 时间戳(Unix Timestamp)。

1. 无参数调用:UNIX_TIMESTAMP() 返回值:自'1970-01-01 00:00:00'的到当前时间的秒数差 例子:

SELECT UNIX_TIMESTAMP() => 1339123415

2. 有参数调用:UNIX_TIMESTAMP(date) 其中date可以是一个DATE字符串,一个DATETIME字符串,一个TIMESTAMP或者一个当地时间的YYMMDD或YYYMMDD格式的数字 返回值:自'1970-01-01 00:00:00'与指定时间的秒数差

举例说明:

1. DATE字符串格式:(日期类型)

SELECT UNIX_TIMESTAMP(‘2012-06-08’) => 1339084800

SELECT UNIX_TIMESTAMP(CURRENT_DATE()) =>1339084800 注:CURRENT_DATE ()的返回值是一个DATE字符串格式 以下几种格式返回的结果相同:


SELECT UNIX_TIMESTAMP('20120608');

SELECT UNIX_TIMESTAMP('2012-6-8');

SELECT UNIX_TIMESTAMP('2012-06-08');


结果都是:1339084800

2. DATETIME字符串格式:(日期和时间的组合类型)

SELECT UNIX_TIMESTAMP(‘2012-06-08 10:48:55’) => 1339123415

SELECT UNIX_TIMESTAMP(NOW()) => 1339123415 注:NOW()的返回值是一个DATETIME字符串格式


参考: [MySQL 8.0.11 binlog文件查看](https://blog.csdn.net/vkingnew/article/details/81170290)

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表