mysql 學習

UPDATE sms_config SET vendor_name='aaa',vendor_id='5',para4='4',para3='3',para2='2',para1='1'
desc sms_config 
# 不要在你本身的數據庫裏面,執行
use information_schema ## 查看錶大小與數據庫的大小
select concat(round(sum(data_length/1024/1024),2),'MB') as data_length_MB, concat(round(sum(index_length/1024/1024),2),'MB') as index_length_MB from tables where table_schema='wacs_db' #數據庫名 and table_name = 'ac_status'; #表名
##

+----------------+-----------------+
| data_length_MB | index_length_MB |
+----------------+-----------------+
| 20.95MB        | 0.14MB |
+----------------+-----------------+
1 row in set (0.00 sec)mysql

 

在通過屢次試驗以後終於解決了root登陸問題。解決步驟以下      $ sudo systemctl stop mysqld.service      $ sudo systemctl set-environment MYSQLD_OPTS="--user=mysql --skip-grant-tables --skip-networking"      $ sudo systemctl start mysqld.service          $ mysql -u root mysql      mysql > UPDATE mysql.user SET authentication_string=PASSWORD("abcdef")  WHERE user='root' and host='localhost';      mysql > flush privileges;      mysql > quit      $ sudo systemctl unset-environment MYSQLD_OPTS      $ sudo systemctl restart mysqld.service --------------------- 做者:xgx2015 來源:CSDN 原文:https://blog.csdn.net/myth_xgx/article/details/50809645 
版權聲明:本文爲博主原創文章,轉載請附上博文連接!

 

在 MySQL 5.6.6 版本之前, MySQL 默認會把全部的 innodb 的表都放在同一個文件中(ibdata1),當該文件過大的時候, MySQL 容易出錯,維護性能差。一個簡單的辦法是修改 MySQL 配置文件 /etc/my.cnf 後重啓 [mysqld]linux

innodb_file_per_table=1

 

mysql> show variables like 'innodb_file_per_table';
+-----------------------+-------+
| Variable_name | Value |
+-----------------------+-------+
| innodb_file_per_table | ON |
+-----------------------+-------+
1 row in set (0.00 sec)sql

 

 

查看MySQL版本數據庫

/factory/database/mysql# mysql -V mysql Ver 14.14 Distrib 5.1.73, for openwrt-linux-gnu (x86_64) using readline 6.3

 建立事件event,每秒檢測,當數據大於1000條就刪除一條性能

SET GLOBAL event_scheduler = ON; DROP EVENT IF EXISTS limit_ac_status; delimiter $ CREATE EVENT limit_ac_status ON SCHEDULE EVERY 1 SECOND DO IF (select count(*) from ac_status) > 10000 then 
    delete from ac_status limit 1; END IF $ delimiter ;

修改狀態ui

event_scheduler = 1

 

查看狀態lua

mysql> SHOW VARIABLES LIKE 'event_scheduler'; +-----------------+-------+
| Variable_name   | Value |
+-----------------+-------+
| event_scheduler | ON    |
+-----------------+-------+
1 row in set (0.00 sec)


use information_schema

mysql> select EVENT_NAME from EVENTS;

+-----------------+
| EVENT_NAME |
+-----------------+
| limit_ac_status |
+-----------------+
1 row in set (0.00 sec)url

 

針對每一個不一樣的存儲引擎(engine),每一個表的文件形式不一樣。在這以前,你們要知道,mysql每一個表,其實以文件的形式存放在磁盤上的。
若是是myisam的,那麼一個表有以下三個文件:
表名.frm:存放表結構的文件
表名.MYD:存放表數據的文件
表名.MYI:存放表索引的文件
21.0M ac_status.MYD 144.0K ac_status.MYI 16.0K   ac_status.frm

 

若是是innodb的:
表名.frm:存放表結構
表數據和索引放在一個文件中:ibdata

數據庫備份
一種辦法是用mysqldump備份全部數據庫後重建全部數據庫,步驟以下 1. mysqldump -u user -p password --all-databases > backup.sql導出全部數據 
2. 刪除全部數據庫 drop database database_N 3. 中止MySQL服務service mysql stop若是是Mariadb就是service mariadb stop 4. 刪除文件ibdata1, ib_logfile0, ib_logfile1 5. 重啓MySQL服務service mysql start若是是Mariadb就是service mariadb start 6. 導入備份數據mysql -u user -p password --all-databases < backup.sql

備份腳本(定時)spa

#!/bin/sh mysqldump -u root -p123456 wacs_db > /etc/config/back_mysql.sql

  crontab -e.net

  50 23 * * * lua /usr/sbin/back_mysql.sh >> /dev/null 2>&1

相關文章
相關標籤/搜索