發布時間:2024-01-24閱讀(15)
啟動mysql服務
systemctl start mysqld 或 systemctl restart mysqld
systemctl status mysqld
systemctl enable mysqld
停止mysql服務
systemctl stop mysqld
查看mysql進程
ps -ef |grep mysql
登陸mysql
mysql -uroot -p
mysql -h 127.0.0.1 -u 用戶名 -p
列出所有數據庫
show databases;
進入數據庫
use test_db;
列出數據庫所有表
show tables;
查看表結構
desc table_name;
創建 test_db數據庫
create database test_db;
刪除test_db數據庫
drop database test_db;
刪除數據庫表
drop table table_name;
刪除表里面記錄
delete from table_name;
查詢數據庫表數據
select * from 庫.表;
查看host,user兩字段的值
select Host,User from mysql.user;
select * from t1 where id=1 and age =’jfedu’
select * from t1 where rowkey like CZ|192.168.1.% limit 16000
SELECT * from T_LIGHT_DATA where CITY=CZ;
SELECT * FROM T_USER_LIGHT WHERE ""UPDATE_TIME"" >=20210701* LIMIT 10;
SELECT count(1) FROM T_USER_LIGHT a where a.CITY=CZ AND a.NET_MODE=FTTH
create table t1 (id varchar(20),name varchar(20)); 創建名為t1表,并創建兩個字段,id、name,varchar表示設置數據長度,用字符來定義長度單位,其中1漢字=2字符=2Bytes;
insert into t1 values ("1","jfedu"); 向表中插入數據;
alter table t1 modify column name varchar(20); 修改name字段的長度;
update t1 set name=jfedu.net where id=1; 修改name字段的內容;
flush privileges; 刷新權限;
show variables like %char%; 查看數據庫字符集;
show engines; 查看MySQL存儲引擎;
show variables like %storage_engine%;查看MySQL默認的存儲引擎;
alter table t1 engine=innodb; 修改MySQL t1表存儲引擎;
更改mysql用戶登陸密碼
ALTER USER root@localhost IDENTIFIED BY 5XvwRTW&;
配置數據庫遠程登陸
GRANT ALL PRIVILEGES ON *.* TO root@%IDENTIFIED BY 5XvwRTW& WITH GRANT OPTION;
添加test用戶查詢、插入、更新、刪除的權限:
grant select,insert,update,delete on *.* to test@""%"" identified by ""123456"";
grant select,insert,delete,update,create,drop on *.* to test@""%"" identified by ""123456"";
flush privileges;"
查看mysql工作進程
show processlist;
查看主從狀態
show slave status;
mysql數據庫備份與恢復
mysqldump -u root -p test_db > /test_db.sql
mysql -u root -p test_db.sql < /test_db.sql
mysql數據庫數據導入
use test_db;
source /test_db.sql;
重置mysql root密碼
mysqladmin -u root -p password “新密碼” 回車后要求輸入舊密碼
Update mysql.user set password=password(‘新密碼’) where user=’root’;
flush privileges;
grant all on *.* to root@’localhost’ identified by ‘新密碼’;
設置mysql密碼長度:
set global validate_password_policy=0;
set global validate_password_length=1;
grant all privileges on *.* to root@% identified by 123456;
#vi /etc/my.cnf #忘記密碼,恢復密碼
--skip-grant-table
mysql -uroot -pmysqlroot -e "ALTER USER root@localhost IDENTIFIED BY 密碼
mysql -uroot -p123456 data -e ""select bn as 編碼, bonusSn as 券碼, useStartDate as 開始時間, useEndDate as 結束時間,吉祥紅52度兩支裝 as 商品, if(status=1,已使用,未使用) as 是否使用, order_id as 訂單號, member_id as 使用會員 from voucher where vouchertype_id=609
order by bn asc "" > info.txt
purge binary logs to mysql-bin.000354; #清理mysql binlog日志SET GLOBAL expire_logs_days = 3; #設置binlog保留3天FLUSH LOGS;show variables like expire_logs_days; |
mysql -u root -p> purge master logs to mysql-bin.010’; //清除mysql-bin.010日志> purge master logs before 2020-02-28 13:00:00; //清除2020-02-28 13:00:00前的日志> purge master logs before date_sub(now(), interval 90 day); //清除90天前的bin日志 |
數據庫備份 |
備份所有數據庫 mysqldump -uroot -p --all-databases > all.sql |
備份數據庫test mysqldump -uroot -p test > test.sql |
備份數據庫test下的表emp mysqldump -uroot -p test emp > emp.sql |
備份數據庫test下的表emp和dept mysqldump -uroot -p test emp dept > emp_dept.sql |
備份數據庫test下的所有表為逗號分割的文本,備份到/tmp: mysqlddump -uroot -p -T /tmp test emp --fields-terminated-by ,shell> more emp.txt 1,z12,z23,z34,z4 |
# 備份全部數據庫(包含存儲過程、自定義函數及事件)mysqldump -uroot -p123456 --single-transaction -R -E --all-databases > /tmp/all_database.sql |
# 要求記錄 binlog 位點信息 可用于搭建從庫mysqldump -uroot -p123456 --single-transaction -R -E --all-databases --master-data=2 > /tmp/all_database.sql |
# 備份指定數據庫mysqldump -uroot -p123456 --single-transaction -R -E --databases db1 > /tmp/db1.sqlmysqldump -uroot -p123456 --single-transaction -R -E --databases db1 db2 > /tmp/db1_db2.sql |
# 備份部分表mysqldump -uroot -p123456 --single-transaction db1 tb1 > /tmp/tb1.sqlmysqldump -uroot -p123456 --single-transaction db1 tb1 tb2 tb3 > /tmp/tb.sql |
# 導出某個表,數據以單行insert顯示mysqldump -uroot -p123456 --single-transaction --skip-extended-insert db1 tb1 > /tmp/tb1.sql |
# 導出單表的部分數據mysqldump -uroot -p123456 --single-transaction db1 tb1 --where=" create_time >= 2021-06-01 00:00:00 " > /tmp/tb1.sqlmysqldump -uroot -p123456 --single-transaction db1 tb1 --where=id < 10 > /tmp/tb1.sql |
# 排除某些表導出mysqldump -uroot -p123456 --single-transaction --databases db1 --ignore-table=db1.tb1 --ignore-table=db1.tb2 > /tmp/db1.sql |
# 只導出結構或只導出數據mysqldump -uroot -p123456 db1 --no-data > /tmp/db1_jiegou.sqlmysqldump -uroot -p123456 db1 --no-create-info > /tmp/db1_data.sql |
# 只導出某個庫的存儲過程及自定義函數mysqldump -uroot -p123456 -d -t -R db1 > /tmp/db1_routine.sql |
# 遠程導出 即MySQL服務端不在本地mysqldump -uroot -p123456 -h192.168.1.10 -P3306 --single-transaction --databases db1 > /tmp/db1.sql |
#只導出除了系統庫外的所有庫數據 mysql -uroot -p123456 -e "show databases"|grep -Ev "Database|mysql|information_schema|performance_schema|sys"|xargs mysqldump -uroot -p --routines --single_transaction --master-data=2 --databases > mysql_dump.sql |
#導出所有數據庫 mysqldump -uroot -p123456 --routines --single_transaction --master-data=2 --all-databases > mysql_dump.sql |
mysql分區表過大,配置自動回收innodb_max_undo_log_size = 4Ginnodb_undo_log_truncate = ONinnodb_undo_tablespaces = 3 |
mysql> show global variables like table_open_cache;mysql> show global status like Open%tables;mysql> set global table_open_cache=6144;清空表緩存mysql>flush tables; 可以將open_tables 清零systemctl restart mysqld 可以講opened_tables 清零 |
數據庫恢復 |
mysql -uroot -p db_name < backfile |
使用 mysqlbinlog 恢復自 mysqldump 備份以來的 binglog ./mysqlbinlog --no-defaults /data/mysql/mysql-bin.000002 | ./mysql t2 |
基于時間點恢復 上午 10 點發生了誤操作 mysqlbinlog --stop-date="2017-09-30 9:59:59" /data/mysql/mysql-bin.123456 | mysql -uroot -ppassword |
mysqlbinlog --start-date="2017-09-30 10:01:00" /data/mysql/mysql-bin.123456 | mysql -uroot -ppassword |
基于位置恢復 |
mysqlbinlog --start-date="2019-09-30 9:59:59" --stop-date="2019-09-30 10:01:00"/data/mysql/mysql-bin.123456 > /tmp/mysql_restore.sql |
mysqlbinlog --stop-position="368312" /data/mysql/mysql-bin.123456 | mysql -uroot -ppassword |
mysqlbinlog --start-position="368315" /data/mysql/mysql-bin.123456 | mysql -uroot -ppassword |
表的導出 select * from test into outfile /data/mysql/outfile.txt fields terminated by "," enclosed by "; |
如果您喜歡本文,就請動動您的發財手為本文點贊評論轉發,讓我們一起學習更多運維相關知識,最后請記得關注我。

Copyright ? 2024 有趣生活 All Rights Reserve吉ICP備19000289號-5 TXT地圖HTML地圖XML地圖