MySql查看数据库中所有表的创建时间等信息:
SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = ‘数据库名’ ORDER BY create_time DESC;
雄关漫道真如铁 而今迈步从头越
MySql查看数据库中所有表的创建时间等信息:
SELECT * FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA = ‘数据库名’ ORDER BY create_time DESC;
当前版本:mysql5.7
找到my.cnf 一般在/etc/my.cnf 或 macos /usr/local/etc/my.cnf
在[mysqld] 下加入以下语句:skip-grant-tables
执行mysql -uroot -p ,如果提示输入密码,按回车。然后登入mysql
修改密码
use mysql; update user set password=PASSWORD('你的密码') where user='root'; ### 5.7执行以下语句 ### update user set authentication_string=PASSWORD('你的密码') where user='root'; flush priveleges;
再修改my.cnf 将刚添加的语句去掉。成功!!
MariaDB重启后,执行 systemctl start mariadb
启动报错
Job for mariadb.service failed because the control process exited with error code. See "systemctl status mariadb.service" and "journalctl -xe" for details.
根据官方提示执行 systemctl status mariadb.service
或者 journalctl -xe
并不能看出真正原因,此时可以查看mariadb的日志文件,查看错误原因。
cd /var/log/mariadb/
tail -n 100 mariadb.log
发现 Fatal error: cannot allocate memory for the buffer pool。
内存不够了
vim /etc/my.cnf将 innodb_buffer_pool_size = 专用的DB服务器,改为内存的50%,非专用改为内存的15-20%。
重启即可
两种方案:
select * from user ORDER BY CONVERT(name USING GBK) ASC;
// 这样可以实现中文排序,但是有个问题,英文字母没有排序,而且在中文上边
2. 自定义函数
“`mysql
DELIMITER $$
CREATE FUNCTION `fristPinyin`(P_NAME VARCHAR(255)) RETURNS varchar(255) CHARSET utf8
DETERMINISTIC
BEGIN
DECLARE V_RETURN VARCHAR(255);
DECLARE V_BOOL INT DEFAULT 0;
DECLARE FIRST_VARCHAR VARCHAR(1);
SET FIRST_VARCHAR = left(CONVERT(P_NAME USING gbk),1); SELECT FIRST_VARCHAR REGEXP '[a-zA-Z]' INTO V_BOOL;
IF V_BOOL = 1 THEN
SET V_RETURN = FIRST_VARCHAR;
ELSE
SET V_RETURN = ELT(INTERVAL(CONV(HEX(left(CONVERT(P_NAME USING gbk),1)),16,10),0xB0A1,0xB0C5,0xB2C1,0xB4EE,0xB6EA,0xB7A2,0xB8C1,0xB9FE,0xBBF7, 0xBFA6,0xC0AC,0xC2E8,0xC4C3,0xC5B6,0xC5BE,0xC6DA,0xC8BB,0xC8F6, 0xCBFA,0xCDDA,0xCEF4,0xD1B9,0xD4D1), 'A','B','C','D','E','F','G','H','J','K','L','M','N','O','P','Q','R','S','T','W','X','Y','Z');
END IF;
RETURN V_RETURN;
END$$
DELIMITER;
select * from app_user ORDER BY fristPinyin(name) ASC ;
// 即可实现英文也按中文排序