日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

oracle数据库倒顺,mysql常用命令

發布時間:2023/12/19 数据库 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 oracle数据库倒顺,mysql常用命令 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

mysql

文件系統管理數據存在的問題

1、數據冗余性和不一致性

2、數據訪問

3、數據相對獨立

4、完整性和原子性問題

5、并發訪問異常

6、安全性問題

數據庫:指的是以一定方式儲存在一起,能為多個用戶共享,具有盡可能小的冗余度的特點,是與應用程序彼此獨立的數據集合。

1、實現數據共享

2、減少數據的冗余度

3、數據實現集中控制

4、數據的一致性

5、故障恢復

關系式數據庫

DBMS 數據庫管理系統

軟件、管理數據庫

層次模型 ?網狀模型 ?關系模型

RDBMS 關系數據庫管理系統 ?DBMS = RDBMS

E-R模型

ERM概念 實體關系建模

實體:實體就是指的數據對象

聯系:聯系代表一個或多個實體之間的聯系

屬性:實體的某一特性

超市: 超市名 ?超市地址

商品: 商品名稱 商品價格

員工: 性名 性別 編號

銷售: 商品 超市 銷售量

創建數據庫 ?修改數據庫

SQL語句 ?結構化查詢語言

大型共享數據庫數據的關系模型

SQL發展歷史

System R ? DB2 ?SQL-SERVER ?T-SQL

ORACLE ?PL/SQL ? ? ANSI

SQL 分類

數據操作語言DML:用于操作數據庫對象中所包含的數據。

例如|:INSERT, ?UPDATE, ?DELETE語句。

數據定義語言DDL: 用于定義和管理數據對象,包括數據庫,數據表等。

例如:CREATE, ?DROP刪除 ?ALTER修改數據表等。

數據查詢語言DQL:用于查詢數據庫對象中所包含的數據。

例如: SELECT

數據控制語言DCL:是用來管理數據庫的語言,包括管理權限及數據更改。

例如: GRANT授權 ?REVOKE刪除權限

關系結構

文件系統的邏輯關系

上層:文件系統中的數據,體現成文件的形式。

底層:數據存在硬盤的數據塊

中間層:文件系統

數據庫的邏輯關系

上層:數據表

底層:文件

中間層:能夠將文件邏輯成表的組件,存儲引擎

存儲引擎

MyISAM 特點:最常見,查詢速度較快 ?缺點:不支持事務,行級鎖和外鍵約束功能

事務:一段SQL語句的批處理,具有原子性(要么全部SQL語句都執行成功,要么全部SQL語句都執行不成功)

行級鎖:InnoDB數據不能修改行級鎖定的數據,其它的可以修改

表級鎖:MyISAM 直接鎖定整張表,要么都能修,要么都不能修改

頁級鎖:DBD 鎖定一張表格的相鄰的幾組數據

約束:

域約束:某個單元格填寫某種類型的數據

外建約束:約束數據正確性

InnoDB

Memory基本內存的引擎,速度快 缺點:不能永遠保存數據

數據庫

1、只支持一種存儲引擎 ORACLE

2、支持多種存儲引擎 ?MYSQL

數據庫結構分為兩大類

存儲管理器

權限及完整性管理器

事務管理器

文件管理器

緩沖區管理器

查詢管理器

DDL DML

查詢執行引擎

數據庫工作模式

單進程多線程模式

守護線程

應用線程

優化數據庫性能

緩存

線程重用

硬件

SMP 對稱多處理器結構

MYSQL 版本

社區版 企業版 集群版

[root@localhost ~]# mysql -u root -p123456 -h localhost -P 3306 ? ?#登陸mysql

mysql>create user you2@'localhost' identified by '123'; ?#設置普通本地用戶 you 123456

mysql>create user you@’%’ identified by ‘123456’ #設置普通用戶 you 123456 ?%代表任意遠端地址登陸,在本地沒辦法登陸

mysql>set password=password('123456'); ? ?#更改root管理員的密碼123456

mysql>set password for 'you'@'localhost'=password('123'); ? ?更改普通用戶密碼為123

mysql>drop user ppp@'%'; ?刪除用戶

mysql>drop user root@'localhost';

mysql>select user , host from mysql . user; 查看mysql的用戶信息

單實例

如何找回密碼:

1、停止數據庫

2、修改主配件文件 vim /etc/my.cnf 加入 (skip-grant-tables 跳過授權表)

3、mysql> update mysql.user set password=password('123') where user='root'; 修改密碼

4、exit 數據庫

5、刪除授權操作skip-grant-tables

6、service mysqld restart 重啟并用新密碼測試登錄

登陸 mysql -uroot -p

多實例修改密碼

1、停止數據庫

2、修改主配件文件 vim /etc/my.cnf 加入 (skip-grant-tables 跳過授權表)

3、mysql> update mysql.user set password=password('123') where user='root'; 修改密碼

4、exit 數據庫

5、刪除授權操作skip-grant-tables

6、service mysqld restart 重啟并用新密碼測試登錄

登陸mysql -u root -p -S /data/3306/mysql.sock

mysql> select user,host from mysql.user; 查看數據庫用戶

mysql> show databases; ? #查看數據庫

mysql> select databases(); #查看是否進入某一個數據庫

mysql> use mysql; ? ? ?#切換數據表

mysql> system whoami #切換到linux下

mysql> system ls /

mysql> show tables; ? #查看數據表

使用help查詢命令

#創建數據庫

mysql> create database you;

Query OK, 1 row affected (0.00 sec)

#顯示數據庫

mysql> show databases;

+--------------------+

| Database ? ? ? ? ? |

+--------------------+

| information_schema |

| you ? ? ? ? ? ? ? ?|

| mysql ? ? ? ? ? ? ?|

| test ? ? ? ? ? ? ? |

+--------------------+

5 rows in set (0.00 sec)

mysql> SHOW create database you;

+----------+----------------------------------------------------------------+

| Database | Create Database ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?|

+----------+----------------------------------------------------------------+

| you ? ? ?| CREATE DATABASE `you` /*!40100 DEFAULT CHARACTER SET latin1 */ |

+----------+----------------------------------------------------------------+

1 row in set (0.00 sec)

查看數據庫字符集

mysql> show create database abc\g;

+----------+----------------------------------------------------------------+

| Database | Create Database ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?|

+----------+----------------------------------------------------------------+

| abc ? ? ?| CREATE DATABASE `abc` /*!40100 DEFAULT CHARACTER SET latin1 */ |

+----------+----------------------------------------------------------------+

1 row in set (0.00 sec)

創建you_gbk數據庫字符集gbk

mysql> CREATE DATABASE `you_gbk` ?DEFAULT CHARACTER SET gbk;

mysql> show databases;

+--------------------+

| Database ? ? ? ? ? |

+--------------------+

| information_schema |

| mysql ? ? ? ? ? ? ?|

| you ? ? ? ? ? ? ? ?|

| you_gbk ? ? ? ? ? ?|

+--------------------+

7 rows in set (0.00 sec)

創建you_utf8數據庫字符集utf8;

mysql> CREATE DATABASE `you_utf8` ?DEFAULT CHARACTER SET utf8;

mysql> show databases;

+--------------------+

| Database ? ? ? ? ? |

+--------------------+

| information_schema |

| mysql ? ? ? ? ? ? ?|

| you_gbk ? ? ? ? ? ?|

| you_utf8 ? ? ? ? ? |

+--------------------+

8 rows in set (0.00 sec)

mysql字符集包括字符集和校對規則

字符集是定義mysql字符串存儲方式,校對規則定義mysql比較字符串的方式。

刪除數據庫

mysql> drop database test;

Query OK, 0 rows affected (0.00 sec)

查看數據庫用戶

mysql> select user,host from mysql.user;

+------+-----------------------+

| user | host ? ? ? ? ? ? ? ? ?|

+------+-----------------------+

| root | 127.0.0.1 ? ? ? ? ? ? |

| ? ? ?| localhost ? ? ? ? ? ? |

| root | localhost ? ? ? ? ? ? |

| ? ? ?| localhost.localdomain |

| root | localhost.localdomain |

+------+-----------------------+

5 rows in set (0.00 sec)

連接數據庫

mysql> use mysql

#查看是否進入數據庫

mysql> select database();

+------------+

| database() |

+------------+

| mysql ? ? ?|

+------------+

1 row in set (0.00 sec)

#查看數據庫用戶

mysql> select user();

+----------------+

| user() ? ? ? ? |

+----------------+

| root@localhost |

+----------------+

1 row in set (0.00 sec)

查看數據庫中的表

mysql> show tables;

+---------------------------+

| Tables_in_mysql ? ? ? ? ? |

+---------------------------+

| columns_priv ? ? ? ? ? ? ?|

| db ? ? ? ? ? ? ? ? ? ? ? ?|

| event ? ? ? ? ? ? ? ? ? ? |

| func ? ? ? ? ? ? ? ? ? ? ?|

| general_log ? ? ? ? ? ? ? |

| help_category ? ? ? ? ? ? |

| help_keyword ? ? ? ? ? ? ?|

| help_relation ? ? ? ? ? ? |

| help_topic ? ? ? ? ? ? ? ?|

| host ? ? ? ? ? ? ? ? ? ? ?|

| ndb_binlog_index ? ? ? ? ?|

| plugin ? ? ? ? ? ? ? ? ? ?|

| proc ? ? ? ? ? ? ? ? ? ? ?|

| procs_priv ? ? ? ? ? ? ? ?|

| servers ? ? ? ? ? ? ? ? ? |

| slow_log ? ? ? ? ? ? ? ? ?|

| tables_priv ? ? ? ? ? ? ? |

| time_zone ? ? ? ? ? ? ? ? |

| time_zone_leap_second ? ? |

| time_zone_name ? ? ? ? ? ?|

| time_zone_transition ? ? ?|

| time_zone_transition_type |

| user ? ? ? ? ? ? ? ? ? ? ?|

+---------------------------+

23 rows in set (0.00 sec)

跳出mysql操作linux

mysql> system whoami

root

mysql> system ls /

bindev ? lib ?miscopt ? sbin ? ? srv ?usr

bootetc ? lost+found ?mntproc ?selinux ?sys ?var

cgrouphome ?media ?netroot ?sh ? ? ? tmp

查看mysql數據庫有多少張表

mysql> show tables from mysql;

+---------------------------+

| Tables_in_mysql ? ? ? ? ? |

+---------------------------+

| columns_priv ? ? ? ? ? ? ?|

| db ? ? ? ? ? ? ? ? ? ? ? ?|

| event ? ? ? ? ? ? ? ? ? ? |

| func ? ? ? ? ? ? ? ? ? ? ?|

| general_log ? ? ? ? ? ? ? |

| help_category ? ? ? ? ? ? |

| help_keyword ? ? ? ? ? ? ?|

| help_relation ? ? ? ? ? ? |

| help_topic ? ? ? ? ? ? ? ?|

| host ? ? ? ? ? ? ? ? ? ? ?|

| ndb_binlog_index ? ? ? ? ?|

| plugin ? ? ? ? ? ? ? ? ? ?|

| proc ? ? ? ? ? ? ? ? ? ? ?|

| procs_priv ? ? ? ? ? ? ? ?|

| servers ? ? ? ? ? ? ? ? ? |

| slow_log ? ? ? ? ? ? ? ? ?|

| tables_priv ? ? ? ? ? ? ? |

| time_zone ? ? ? ? ? ? ? ? |

| time_zone_leap_second ? ? |

| time_zone_name ? ? ? ? ? ?|

| time_zone_transition ? ? ?|

| time_zone_transition_type |

| user ? ? ? ? ? ? ? ? ? ? ?|

+---------------------------+

23 rows in set (0.00 sec)

創建mysql用戶

mysql> create user you@'localhost' identified by '123456';

Query OK, 0 rows affected (0.00 sec)

mysql> select user,host from mysql.user;

+------+-----------------------+

| user | host ? ? ? ? ? ? ? ? ?|

+------+-----------------------+

| root | 127.0.0.1 ? ? ? ? ? ? |

| ? ? ?| localhost ? ? ? ? ? ? |

| root | localhost ? ? ? ? ? ? |

| you ?| localhost ? ? ? ? ? ? |

| ? ? ?| localhost.localdomain |

| root | localhost.localdomain |

+------+-----------------------+

6 rows in set (0.00 sec)

刪除mysql用戶

mysql> drop user you1@'localhost';

Query OK, 0 rows affected (0.00 sec)

刪除用戶

delete from mysql.user where user='you';

delete from mysql.user where user='you'and user='root';

用戶授權,先創建用戶再授權用戶

mysql> create user 'xiaoyou'@'localhost' identified by '123456';

mysql> grant all on *.* to 'xiaoyou'@'localhost';

Query OK, 0 rows affected (0.00 sec)

查看用戶權限 USAGE只有連接的權限

mysql> show grants for oldboy@localhost\G;

*************************** 1. row ***************************

Grants for oldboy@localhost: GRANT USAGE ON *.* TO 'oldboy'@'localhost' IDENTIFIED BY PASSWORD '*6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9'

1 row in set (0.00 sec)

ERROR:

No query specified

給某個數據庫授權

mysql> create user 'youyou'@'localhost' identified by '123456';

Query OK, 0 rows affected (0.00 sec)

mysql> select user,host from mysql.user;

+---------+-----------------------+

| user ? ?| host ? ? ? ? ? ? ? ? ?|

+---------+-----------------------+

| root ? ?| 127.0.0.1 ? ? ? ? ? ? |

| ? ? ? ? | localhost ? ? ? ? ? ? |

| root ? ?| localhost ? ? ? ? ? ? |

| xiaoyou | localhost ? ? ? ? ? ? |

| youyou ?| localhost ? ? ? ? ? ? |

| ? ? ? ? | localhost.localdomain |

| root ? ?| localhost.localdomain |

+---------+-----------------------+

8 rows in set (0.00 sec)

mysql> show databases;

+--------------------+

| Database ? ? ? ? ? |

+--------------------+

| information_schema |

| mysql ? ? ? ? ? ? ?|

| you ? ? ? ? ? ? ? ?|

| you_abc ? ? ? ? ? ?|

| you_gbk ? ? ? ? ? ?|

| you_utf8 ? ? ? ? ? |

+--------------------+

6 rows in set (0.00 sec)

創建拉丁字符集數據庫 ?mysql默認字符集

mysql> create database data0;

Query OK, 1 row affected (0.00 sec)

linux系統字符集 vim /etc/sysconfig/i18n ?LANG="zh CN.UTF-8"

創建utf8字符集數據庫

mysql> create database data2 default character set utf8 collate utf8_general_ci;

Query OK, 1 row affected (0.00 sec)

創建gbk字符集數據庫

mysql> create database data3 default character set gbk collate gbk_chinese_ci;

Query OK, 1 row affected (0.00 sec)

mysql> create database youyou;

Query OK, 1 row affected (0.00 sec)

mysql> show databases;

+--------------------+

| Database ? ? ? ? ? |

+--------------------+

| information_schema |

| mysql ? ? ? ? ? ? ?|

| you ? ? ? ? ? ? ? ?|

| you_abc ? ? ? ? ? ?|

| you_gbk ? ? ? ? ? ?|

| you_utf8 ? ? ? ? ? |

| youyou ? ? ? ? ? ? |

+--------------------+

7 rows in set (0.00 sec)

mysql> use youyou

Database changed

mysql> grant all on youyou.* to youyou@localhost;

直接創建用戶和授權

mysql> grant all on youyou.* to etian@localhost identified by '123456';

Query OK, 0 rows affected (0.00 sec)

mysql> grant create,delete,update,insert on aaa.* ?to you2@localhost identified by '123456';

Query OK, 0 rows affected (0.00 sec)

mysql> show databases;

+--------------------+

| Database ? ? ? ? ? |

+--------------------+

| information_schema |

| abc ? ? ? ? ? ? ? ?|

| anni_bgk ? ? ? ? ? |

| data1 ? ? ? ? ? ? ?|

| data2 ? ? ? ? ? ? ?|

| mysql ? ? ? ? ? ? ?|

+--------------------+

6 rows in set (0.00 sec)

收回授權

mysql> revoke insert on youyou.* from 'jeffrey'@'localhost';

ERROR 1141 (42000): There is no such grant defined for user 'jeffrey' on host 'localhost'

mysql> revoke insert on youyou.* from 'youyou'@'localhost';

Query OK, 0 rows affected (0.00 sec)

mysql> show grents for ww@localhost\G

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'grents for ww@localhost' at line 1

mysql> show grants for ww@localhost\G;

*************************** 1. row ***************************

Grants for ww@localhost: GRANT USAGE ON *.* TO 'ww'@'localhost' IDENTIFIED BY PASSWORD '*6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9'

*************************** 2. row ***************************

Grants for ww@localhost: GRANT SELECT, UPDATE, DELETE, CREATE, DROP, REFERENCES, INDEX, ALTER, CREATE TEMPORARY TABLES, LOCK TABLES, EXECUTE, CREATE VIEW, SHOW VIEW, CREATE ROUTINE, ALTER ROUTINE, EVENT, TRIGGER ON `wwtable`.* TO 'ww'@'localhost'

2 rows in set (0.00 sec)

查看數據庫授權表

mysql> desc mysql.user;

主從mysql授權

生產環境主庫用戶的授權

grant select, insert, update, delete on blog.* to blog@'172.20.100.%' i dentified by '123456';

生產環境從庫用戶的授權

grant select on blog.* to blog@'10.0.0.%' identified by '123456';

例:

寫庫

blog ?you456 3306 10.0.0.7

讀庫

blog ?you456 3306 10.0.0.8

創建gbk數據庫

CREATE DATABASE anni_bgk CHARACTER SET gbk collate gbk_chinese_ci;

建立測試表test

命令: create talbe test ( .....)

mysql數據庫類型

1、INT[(M)]型:正常大小整數類型

2、DOUBLE[(M,D)] [ZEROFILL]型,正常大小雙精密浮點數字類型

3、DATE 日期型

4、CHAR(M)型:定長字符串類型,當存儲時,總是用空格填滿右邊到指定的長度

5、BLOB TEXT 類型,最大長度為65535個字符

6、VARCHAR型:變長字符串類型

例:

mysql> create table test(id int(4) not null primary key auto_increment, name char(20) not null);

Query OK, 0 rows affected (0.08 sec)

查看表結構

mysql> desc test;

+-------+----------+------+-----+---------+----------------+

| Field | Type ? ? | Null | Key | Default | Extra ? ? ? ? ?|

+-------+----------+------+-----+---------+----------------+

| id ? ?| int(4) ? | NO ? | PRI | NULL ? ?| auto_increment |

| name ?| char(20) | NO ? | ? ? | NULL ? ?| ? ? ? ? ? ? ? ?|

+-------+----------+------+-----+---------+----------------+

2 rows in set (0.00 sec)

查看建表語句

mysql> show create table from test\G

ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'from test' at line 1

mysql> show create table test\G

*************************** 1. row ***************************

Table: test

Create Table: CREATE TABLE `test` (

`id` int(4) NOT NULL AUTO_INCREMENT,

`name` char(20) NOT NULL,

PRIMARY KEY (`id`)

) ENGINE=MyISAM DEFAULT CHARSET=gbk

1 row in set (0.00 sec)

插入數據

命令:insert into 表名[(字段名1)(字段名n)] values (值1)(值2)]

mysql> desc test;

+-------+----------+------+-----+---------+----------------+

| Field | Type ? ? | Null | Key | Default | Extra ? ? ? ? ?|

+-------+----------+------+-----+---------+----------------+

| id ? ?| int(4) ? | NO ? | PRI | NULL ? ?| auto_increment |

| name ?| char(20) | NO ? | ? ? | NULL ? ?| ? ? ? ? ? ? ? ?|

+-------+----------+------+-----+---------+----------------+

2 rows in set (0.01 sec)

mysql> insert into test values(1,'user1');

Query OK, 1 row affected (0.00 sec)

mysql> select * from test;

+----+-------+

| id | name ?|

+----+-------+

| ?1 | user1 |

+----+-------+

1 row in set (0.00 sec)

mysql> insert into test (id,name) values (3,'user3');

Query OK, 1 row affected (0.00 sec)

mysql> select * from test;

+----+-------+

| id | name ?|

+----+-------+

| ?1 | user1 |

| ?2 | user2 |

| ?3 | user3 |

+----+-------+

3 rows in set (0.00 sec)

mysql> insert into test(name) values('user4')

-> ;

Query OK, 1 row affected (0.00 sec)

mysql> select * from test;

+----+-------+

| id | name ?|

+----+-------+

| ?1 | user1 |

| ?2 | user2 |

| ?3 | user3 |

| ?4 | user4 |

+----+-------+

4 rows in set (0.00 sec)

mysql> insert into test (id,name) values (5,'user5'),(6,'user6');

Query OK, 2 rows affected (0.00 sec)

Records: 2 ?Duplicates: 0 ?Warnings: 0

mysql> select * from test;

+----+-------+

| id | name ?|

+----+-------+

| ?1 | user1 |

| ?2 | user2 |

| ?3 | user3 |

| ?4 | user4 |

| ?5 | user5 |

| ?6 | user6 |

+----+-------+

6 rows in set (0.00 sec)

mysql> insert into test(name) values('user7'),('user8');

Query OK, 2 rows affected (0.00 sec)

Records: 2 ?Duplicates: 0 ?Warnings: 0

mysql> select * from test;

+----+-------+

| id | name ?|

+----+-------+

| ?1 | user1 |

| ?2 | user2 |

| ?3 | user3 |

| ?4 | user4 |

| ?5 | user5 |

| ?6 | user6 |

| ?7 | user7 |

| ?8 | user8 |

+----+-------+

8 rows in set (0.00 sec)

you數據庫臨時備份

[root@localhost mysql]# mysqldump -uroot -p'root' -P 3306 -S /var/lib/mysql/mysql.sock ?-B you > /tmp/you_bak.sql

查看備份發數據庫內容

[root@localhost tmp]# egrep -v "^$|#|\*|--" you_bak.sql

USE `you`;

DROP TABLE IF EXISTS `test`;

CREATE TABLE `test` (

`id` int(4) NOT NULL AUTO_INCREMENT,

`name` char(20) NOT NULL,

PRIMARY KEY (`id`)

) ENGINE=MyISAM AUTO_INCREMENT=9 DEFAULT CHARSET=gbk;

LOCK TABLES `test` WRITE;

INSERT INTO `test` VALUES (1,'user1'),(2,'user2'),(3,'user3'),(4,'user4'),(5,'user5'),(6,'user6'),(7,'user7'),(8,'user8');

UNLOCK TABLES;

查詢格式

命令:select from where

mysql> select * from test limit 0,2 ;

+----+-------+

| id | name ?|

+----+-------+

| ?1 | user1 |

| ?2 | user2 |

+----+-------+

2 rows in set (0.00 sec)

mysql> select * from test limit 2,6 ;

+----+-------+

| id | name ?|

+----+-------+

| ?3 | user3 |

| ?4 | user4 |

| ?5 | user5 |

| ?6 | user6 |

| ?7 | user7 |

| ?8 | user8 |

+----+-------+

6 rows in set (0.00 sec)

查倒順的前兩行

mysql> select * from test order by id desc limit 0,2 ;

+----+-------+

| id | name ?|

+----+-------+

| ?8 | user8 |

| ?7 | user7 |

+----+-------+

2 rows in set (0.00 sec)

升順查找

mysql> select * from test order by id asc limit 0,2 ;

+----+-------+

| id | name ?|

+----+-------+

| ?1 | user1 |

| ?2 | user2 |

+----+-------+

2 rows in set (0.00 sec)

查詢某一條name記錄

mysql> select * from test where name='user2' ;

+----+-------+

| id | name ?|

+----+-------+

| ?2 | user2 |

+----+-------+

1 row in set (0.00 sec)

查找范圍

mysql> select * from test where id >2 and id <6 ;

+----+-------+

| id | name ?|

+----+-------+

| ?3 | user3 |

| ?4 | user4 |

| ?5 | user5 |

+----+-------+

3 rows in set (0.00 sec)

字符一定要帶單引號

mysql> select * from test where id > 7 or id < 2 ;

+----+-------+

| id | name ?|

+----+-------+

| ?1 | user1 |

| ?8 | user8 |

+----+-------+

2 rows in set (0.00 sec)

兩張表條件關聯查詢

mysql> select test.id,test.name,test1.name,test1.age from test,test1 ?where test.name=test1.name;

+----+-------+-------+-----+

| id | name ?| name ?| age |

+----+-------+-------+-----+

| ?7 | user7 | user7 | ?18 |

| ?8 | user8 | user8 | ?13 |

+----+-------+-------+-----+

2 rows in set (0.00 sec)

mysql> select test.id,test.name,test1.name,test1.age from test,test1 ?where test.name=test1.name and test1.name='xiaoyou';

Empty set (0.00 sec)

修改表中的數據

update 表名 set 字段=新值,... where 條件

條件一定要加 where

mysql> update test set name='xiaoyou' where name='user4';

Query OK, 1 row affected (0.00 sec)

Rows matched: 1 ?Changed: 1 ?Warnings: 0

mysql> select * from test;

+----+---------+

| id | name ? ?|

+----+---------+

| ?1 | user1 ? |

| ?2 | user2 ? |

| ?3 | user3 ? |

| ?4 | xiaoyou |

| ?5 | user5 ? |

| ?6 | user6 ? |

| ?7 | user7 ? |

| ?8 | user8 ? |

+----+---------+

8 rows in set (0.01 sec)

不允許這樣操作,一定要加條件

mysql> update test set name='xiaoyou';

Query OK, 7 rows affected (0.00 sec)

Rows matched: 8 ?Changed: 7 ?Warnings: 0

mysql> select * from test;

+----+---------+

| id | name ? ?|

+----+---------+

| ?1 | xiaoyou |

| ?2 | xiaoyou |

| ?3 | xiaoyou |

| ?4 | xiaoyou |

| ?5 | xiaoyou |

| ?6 | xiaoyou |

| ?7 | xiaoyou |

| ?8 | xiaoyou |

+----+---------+

8 rows in set (0.00 sec)

恢復錯復

[root@localhost mysql]# mysql -uroot -p'root' -P 3306 -S /var/lib/mysql/mysql.sock < /tmp/you_bak.sql

mysql> delete from test where id >3;

Query OK, 3 rows affected (0.01 sec)

mysql> select * from test;

+----+---------+

| id | name ? ?|

+----+---------+

| ?1 | user1 ? |

| ?2 | user2 ? |

| ?3 | xiaoyou |

+----+---------+

3 rows in set (0.00 sec)

mysql> delete from test where id =3;

Query OK, 1 row affected (0.00 sec)

mysql> select * from test;

+----+-------+

| id | name ?|

+----+-------+

| ?1 | user1 |

| ?2 | user2 |

+----+-------+

2 rows in set (0.00 sec)

mysql> select * from test;

+----+-------+

| id | name ?|

+----+-------+

| ?1 | user1 |

| ?2 | user2 |

+----+-------+

2 rows in set (0.00 sec)

刪除表中的數據

mysql> delete from test where id =1;

Query OK, 1 row affected (0.00 sec)

不充許這樣操作,一定要加條件

mysql> select * from test;

+----+-------+

| id | name ?|

+----+-------+

| ?2 | user2 |

+----+-------+

1 row in set (0.00 sec)

mysql> delete from test;

Query OK, 1 row affected (0.00 sec)

直接把表清空

mysql> truncate table test;

Query OK, 0 rows affected (0.00 sec)

mysql> select * from test;

Empty set (0.00 sec)

在表中添加字段

mysql> alter table test1 add sex int(4);

Query OK, 0 rows affected (0.01 sec)

Records: 0 ?Duplicates: 0 ?Warnings: 0

mysql> alter table test1 add agg int(4) after name;

Query OK, 0 rows affected (0.01 sec)

Records: 0 ?Duplicates: 0 ?Warnings: 0

mysql> desc test1

-> ;

+-------+----------+------+-----+---------+----------------+

| Field | Type ? ? | Null | Key | Default | Extra ? ? ? ? ?|

+-------+----------+------+-----+---------+----------------+

| id ? ?| int(4) ? | NO ? | PRI | NULL ? ?| auto_increment |

| name ?| char(20) | NO ? | ? ? | NULL ? ?| ? ? ? ? ? ? ? ?|

| agg ? | int(4) ? | YES ?| ? ? | NULL ? ?| ? ? ? ? ? ? ? ?|

| sex ? | int(4) ? | YES ?| ? ? | NULL ? ?| ? ? ? ? ? ? ? ?|

+-------+----------+------+-----+---------+----------------+

4 rows in set (0.00 sec)

刪除字段

mysql> alter table test1 drop agg;

Query OK, 0 rows affected (0.01 sec)

Records: 0 ?Duplicates: 0 ?Warnings: 0

mysql> desc test1;

+-------+----------+------+-----+---------+----------------+

| Field | Type ? ? | Null | Key | Default | Extra ? ? ? ? ?|

+-------+----------+------+-----+---------+----------------+

| id ? ?| int(4) ? | NO ? | PRI | NULL ? ?| auto_increment |

| name ?| char(20) | NO ? | ? ? | NULL ? ?| ? ? ? ? ? ? ? ?|

| sex ? | int(4) ? | YES ?| ? ? | NULL ? ?| ? ? ? ? ? ? ? ?|

+-------+----------+------+-----+---------+----------------+

3 rows in set (0.00 sec)

修改表名

mysql> rename table test1 to test;

Query OK, 0 rows affected (0.00 sec)

mysql> show tables;

+-----------------+

| Tables_in_user1 |

+-----------------+

| test ? ? ? ? ? ?|

+-----------------+

1 row in set (0.00 sec)

mysql>drop table test1;

mysql> insert into test(name) values('小游');

Query OK, 1 row affected (0.00 sec)

mysql> select * from test;

+----+-----------+------+

| id | name ? ? ?| sex ?|

+----+-----------+------+

| ?1 | user1 ? ? | NULL |

| ?2 | user2 ? ? | NULL |

| ?3 | user3 ? ? | ? 16 |

| ?4 | user4 ? ? | ? 18 |

| ?5 | user5 ? ? | ? 19 |

| ?6 | xiaohu ? ?| NULL |

| ?7 | 小游 ? ?| NULL |

+----+-----------+------+

8 rows in set (0.00 sec)

如果不支持中文,一定要先set names gbk,不然出現亂碼

改服務端字符集

更改my.cnf參數

[mysqld] 一定要在mysqld下面加

default-character-set=gbk

改客戶端字符集

如果不支持中文,可以在備份文件加入set names gbk還原

mysql> set names gbk;

Query OK, 0 rows affected (0.00 sec)

mysql> select * from test where name='小游';

+----+--------+------+

| id | name ? | sex ?|

+----+--------+------+

| ?7 | 小游 | NULL |

+----+--------+------+

1 row in set (0.00 sec)

在linux命令行執行mysql里命令

[root@localhost ~]# mysql -uroot -p'root' -S /var/lib/mysql/mysql.sock -e "show databases;"

+--------------------+

| Database ? ? ? ? ? |

+--------------------+

| information_schema |

| mysql ? ? ? ? ? ? ?|

| test ? ? ? ? ? ? ? |

| user1 ? ? ? ? ? ? ?|

+--------------------+

[root@localhost tmp]# egrep -v "#|\*|--|^$" /tmp/user1_bak.sql

備份數據庫

mysqldump -uroot -p'root' -S /var/lib/mysql/mysql.sock -B user1 > /tmp/user1_bak.sql

還原數據庫

mysql -uroot -p'root' -S /var/lib/mysql/mysql.sock -B user1 < /tmp/user1_bak.sql

提示:

1、文件本文字符集要正確gb2312

2、文件里加入set names gbk;

3、恢復時執行mysql --defaul-character-set

mysql字符集介紹

GBK 定長 雙字節 不是國際標準,支持的系統不少

UTF-8 非定長 1-4字節 廣泛支持,MYSQL也使用UTF-8

latin1 MYSQL默認字符集

查看默認節符集

mysql> show variables like 'character_set%';

+--------------------------+----------------------------+

| Variable_name ? ? ? ? ? ?| Value ? ? ? ? ? ? ? ? ? ? ?|

+--------------------------+----------------------------+

| character_set_client ? ? | latin1 ? ? ? ? ? ? ? ? ? ? |

| character_set_connection | latin1 ? ? ? ? ? ? ? ? ? ? |

| character_set_database ? | latin1 ? ? ? ? ? ? ? ? ? ? |

| character_set_filesystem | binary ? ? ? ? ? ? ? ? ? ? |

| character_set_results ? ?| latin1 ? ? ? ? ? ? ? ? ? ? |

| character_set_server ? ? | latin1 ? ? ? ? ? ? ? ? ? ? |

| character_set_system ? ? | utf8 ? ? ? ? ? ? ? ? ? ? ? |

| character_sets_dir ? ? ? | /usr/share/mysql/charsets/ |

+--------------------------+----------------------------+

8 rows in set (0.00 sec)

修改后的

mysql> set names gbk;

mysql> show variables like 'character_set%';

+--------------------------+----------------------------+

| Variable_name ? ? ? ? ? ?| Value ? ? ? ? ? ? ? ? ? ? ?|

+--------------------------+----------------------------+

| character_set_client ? ? | gbk ? ? ? ? ? ? ? ? ? ? ? ?|

| character_set_connection | gbk ? ? ? ? ? ? ? ? ? ? ? ?|

| character_set_database ? | latin1 ? ? ? ? ? ? ? ? ? ? |

| character_set_filesystem | binary ? ? ? ? ? ? ? ? ? ? |

| character_set_results ? ?| gbk ? ? ? ? ? ? ? ? ? ? ? ?|

| character_set_server ? ? | latin1 ? ? ? ? ? ? ? ? ? ? |

| character_set_system ? ? | utf8 ? ? ? ? ? ? ? ? ? ? ? |

| character_sets_dir ? ? ? | /usr/share/mysql/charsets/ |

+--------------------------+----------------------------+

8 rows in set (0.00 sec)

改服務端字符集

更改my.cnf參數

[mysqld] 一定要在mysqld下面加

default-character-set=gbk

改客戶端字符集

如果不支持中文,可以在備份文件加入set names gbk還原

mysql> set names gbk;

Query OK, 0 rows affected (0.00 sec)

1、在服務器my.cnf配置文件里[mysqld]模塊下添加字符集配置,重啟生效生,創建數據庫和表默認都是這個設置的字符集。

2、客戶端字符集設置,set names gbk; 這樣可以確保插入后的中文 ,不出現亂碼,對執行set names gbk;之前插入的中文無效。

在linux登陸和mysql下的set names gbk;相同

[root@localhost tmp]# mysql -uroot -p'root' -S /var/lib/mysql/mysql.sock --default-character-set=gbk

mysql> show variables like 'character_set%';

+--------------------------+--------------------------------------------+

| Variable_name ? ? ? ? ? ?| Value ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?|

+--------------------------+--------------------------------------------+

| character_set_client ? ? | gbk ? ? #客戶端字符集set names gbk; ? ? ? ?|

| character_set_connection | gbk ? ? #連接字符集 set names gbk; ? ? ? ? |

| character_set_database ? | gbk ?#數據庫字符集 配置文件或建庫建表指定 ?|

| character_set_filesystem | binary ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? |

| character_set_results ? ?| gbk ? #返回結果字符集,set names gbk; ? ? ?|

| character_set_server ? ? | gbk ? #服務器字符集 配置文件或建庫建表指定 |

| character_set_system ? ? | utf8 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? |

| character_sets_dir ? ? ? | /usr/share/mysql/charsets/ ? ? ? ? ? ? ? ? |

+--------------------------+--------------------------------------------+

8 rows in set (0.00 sec)

linux命令行查看表

[root@localhost tmp]# mysql -uroot -p'root' -S /var/lib/mysql/mysql.sock ?-e "select * from user1.test;" ?user1是數據庫 test是數據庫里的表

+----+--------+------+

| id | name ? | sex ?|

+----+--------+------+

| ?1 | user1 ?| NULL |

| ?2 | user2 ?| NULL |

| ?3 | user3 ?| ? 16 |

| ?4 | user4 ?| ? 18 |

| ?5 | user5 ?| ? 19 |

| ?6 | xiaohu | NULL |

| ?7 | 小游 | NULL |

+----+--------+------+

[root@localhost ~]# mysql -uroot -p'root' -S /var/lib/mysql/mysql.sock -e "set names gbk;select * from data1.test;"

+----+--------+------+-----+------+

| id | name ? | sex ?| age | org ?|

+----+--------+------+-----+------+

| ?1 | user1 ?| NULL | ? 0 | NULL |

| ?2 | user2 ?| NULL | ?26 | NULL |

| ?4 | user4 ?| NULL | ? 0 | NULL |

| ?5 | user5 ?| NULL | ? 0 | NULL |

| ?6 | user6 ?| NULL | ? 0 | NULL |

| ?7 | 小游 | NULL | ? 0 | NULL |

| ?8 | 小游 | NULL | ? 0 | NULL |

+----+--------+------+-----+------+

查看mysql支持引擎

mysql> show engines;

+------------+---------+------------------------------------------------------------+--------------+------+------------+

| Engine ? ? | Support | Comment ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?| Transactions | XA ? | Savepoints |

+------------+---------+------------------------------------------------------------+--------------+------+------------+

| MRG_MYISAM | YES ? ? | Collection of identical MyISAM tables ? ? ? ? ? ? ? ? ? ? ?| NO ? ? ? ? ? | NO ? | NO ? ? ? ? |

| CSV ? ? ? ?| YES ? ? | CSV storage engine ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? | NO ? ? ? ? ? | NO ? | NO ? ? ? ? |

| MyISAM ? ? | DEFAULT | Default engine as of MySQL 3.23 with great performance ? ? | NO ? ? ? ? ? | NO ? | NO ? ? ? ? |

| InnoDB ? ? | YES ? ? | Supports transactions, row-level locking, and foreign keys | YES ? ? ? ? ?| YES ?| YES ? ? ? ?|

| MEMORY ? ? | YES ? ? | Hash based, stored in memory, useful for temporary tables ?| NO ? ? ? ? ? | NO ? | NO ? ? ? ? |

+------------+---------+------------------------------------------------------------+--------------+------+------------+

5 rows in set (0.00 sec)

備份數據庫

普通備份

[root@localhost ~]# mysqldump -uroot -p'root' ?data1 >/tmp/data_bak.sql

[root@localhost ~]# mysqldump -uroot -p'root' -S /var/lib/mysql/mysql.sock data1|gzip ?>/tmp/data$(date +%F).sql.gz

備份多個庫 data1 you_bgk

[root@localhost tmp]# mysqldump -uroot -p'root' -S /var/lib/mysql/mysql.sock -B data1 you_bgk|gzip >/tmp/database_bak$(date +%F).sql.gz

如果分庫備份

備份表 data1是庫名 ?test是表名

[root@localhost tmp]# mysqldump -uroot -p'root' -S /var/lib/mysql/mysql.sock data1 test >/tmp/test_table.sql

備份多張表 ?data1是庫名 ?test是表名 aaa是表名

[root@localhost tmp]# mysqldump -uroot -p'root' -S /var/lib/mysql/mysql.sock data1 test aaa >/tmp/test_table.sql

備份庫和表結構

[root@localhost tmp]# mysqldump -uroot -p'root' -S /var/lib/mysql/mysql.sock -d data1 >/tmp/aaa.sql

[root@localhost tmp]# egrep -v "^$|#|\*|--" aaa.sql

DROP TABLE IF EXISTS `aaa`;

CREATE TABLE `aaa` (

`name` char(20) NOT NULL,

`age` int(3) NOT NULL,

PRIMARY KEY (`name`)

) ENGINE=MyISAM DEFAULT CHARSET=gbk;

DROP TABLE IF EXISTS `test`;

CREATE TABLE `test` (

`id` int(3) NOT NULL AUTO_INCREMENT,

`name` char(20) NOT NULL,

`sex` int(4) DEFAULT NULL,

`age` int(4) NOT NULL,

`org` int(4) DEFAULT NULL,

PRIMARY KEY (`id`)

) ENGINE=MyISAM AUTO_INCREMENT=29 DEFAULT CHARSET=gbk;

讓備份結果輸出少一些 ?--compact

[root@localhost tmp]# mysqldump -uroot -p'root' -S /var/lib/mysql/mysql.sock ?--compact -d data1 >/tmp/aaa.sql

恢復數據庫

1、source 命令恢復

用source加linux命令行的路徑直接恢復mysql數據

mysql> source /tmp/tmp.sql

Database changed

Query OK, 0 rows affected (0.00 sec)

Query OK, 0 rows affected (0.05 sec)

Query OK, 0 rows affected (0.00 sec)

[root@localhost tmp]# mysql -uroot -p'root' -S /var/lib/mysql/mysql.sock ?-e "source /tmp/tmp.sql "

2、mysql命令導入更新恢復

[root@localhost tmp]# mysql -uroot -p'root' -S /var/lib/mysql/mysql.sock ?< /tmp/tmp.sql

假定開發人員讓我們插入數據到數據庫,可能是郵件發的,內容可能是字符串或都是下面的文件,帶中文

sql文里沒有use data1的時候,在導入時路徑就必須指定數據庫名

[root@localhost tmp]# mysql -uroot -p'root' -S /var/lib/mysql/mysql.sock ?< /tmp/aa.sql

mysql -e實現非交互式對話

[root@localhost tmp]# mysql -uroot -p'root' -e "select * from data1.test;"

echo 和 -e 類似命令

[root@localhost tmp]# echo "show status" | mysql -uroot -p'root' -S /var/lib/mysql/mysql.sock

[root@localhost tmp]#cat | mysql -uroot -p'root' -S /var/lib/mysql/mysql.sock << EOF

show databases;

EOF

[root@localhost tmp]# cat | mysql -uroot -p'root' -S /var/lib/mysql/mysql.sock << EOF

> show databases;

> EOF

Database

information_schema

anni_bgk

data0

data1

data2

data3

mysql

you

you1

[root@localhost tmp]# mysql -uroot -p'root' -e "select * from data1.test;select * from data1.aaa;"

查看mysql狀態

[root@localhost tmp]# mysql -uroot -p'root' -S /var/lib/mysql/mysql.sock ?-e "show processlist;"

[root@localhost tmp]# mysql -uroot -p'root' -S /var/lib/mysql/mysql.sock ?-e "show full processlist;"

+----+------+-----------+-------+---------+------+-------+-----------------------+

| Id | User | Host ? ? ?| db ? ?| Command | Time | State | Info ? ? ? ? ? ? ? ? ?|

+----+------+-----------+-------+---------+------+-------+-----------------------+

| ?3 | root | localhost | data1 | Sleep ? | ?168 | ? ? ? | NULL ? ? ? ? ? ? ? ? ?|

| ?7 | root | localhost | NULL ?| Query ? | ? ?0 | NULL ?| show full processlist |

+----+------+-----------+-------+---------+------+-------+-----------------------+

mysql sleep過多的問題

[root@localhost tmp]# mysql -uroot -p'root' -S /var/lib/mysql/mysql.sock ?-e "show full processlist;" |egrep -v "sleep"

IdUserHostdbCommandTimeStateInfo

3rootlocalhostdata1Sleep291NULL

10rootlocalhostNULLQuery0NULLshow full processlist

查看mysql參數

[root@localhost tmp]# mysql -uroot -p'root' -S /var/lib/mysql/mysql.sock ?-e "show variables"

查看mysql狀態

[root@localhost tmp]# mysql -uroot -p'root' -S /var/lib/mysql/mysql.sock ?-e "show status"

查看mysql各個查詢狀態

[root@localhost tmp]# mysql -uroot -p'root' -S /var/lib/mysql/mysql.sock ?-e "show global status"

過濾Com_select|Com_insert|Com_delete|Com_update

[root@localhost tmp]# mysql -uroot -p'root' -S /var/lib/mysql/mysql.sock ?-e "show global status"| egrep "Com_select|Com_insert|Com_delete|Com_update"

Com_delete0

Com_delete_multi0

Com_insert0

Com_insert_select0

Com_select18

Com_update0

Com_update_multi0

查看引擎的緩沖區

[root@localhost tmp]# mysql -uroot -p'root' -S /var/lib/mysql/mysql.sock ?-e "show variables;"|grep key_buffer

key_buffer_size8384512

設置緩沖區

[root@localhost tmp]# mysql -uroot -p'root' -S /var/lib/mysql/mysql.sock ?-e "set global key_buffer_size = 32776192;"

[root@localhost tmp]# mysql -uroot -p'root' -S /var/lib/mysql/mysql.sock ?-e "show variables;"|grep key_buffer

key_buffer_size32776192 ?#32M

源碼包

[root@localhost tmp]# vim /data/3306/my.cnf

sedi -i 's#key_buffer_size = 16M# key_buffer_size = 32M#g' /data/3306/my.cnf

安裝mysql

建立mysql帳號

groupadd mysql;

useradd -s /sbin/nologin -g mysql -M mysql;

-s /sbin/nologin 表示禁止該用戶登陸,加強安全

-g mysql 指定屬于mysql組

-M 表示不創建用戶家目錄

查看創建的用戶

tail -1 /etc/passwd

mysql:x:500:500::/home/mysql:/sbin/nologin

編繹之前安裝gcc ?yum -y install gcc*

yum -y install ncurses-devel

./configure \

--prefix=/usr/local/mysql \

--with-unix-socket-path=/usr/local/mysql/tmp/mysql.sock \

--localstatedir=/usr/local/mysql/data \

--enable-assembler \

--enable-thread-safe-client \

--with-mysqld-user=mysql \

--with-big-tables \

--without-debug \

--with-prthread \

--enable-assembler \

--with-extra-charsets=complex \

--with-readline \

--with-ssl \

--with-embedded-server \

--enable-local-infile \

--with-plugins=partition,innobase \

--with-plugin-PLUGIN \

--with-mysqld-ldflags=-all-static \

--with-client-ldflags=-all-static

make && make install

ls /usr/local/mysql/

killall mysqld

以前的mysql單實例清除

生產環境多實例 內存16G,雙CPU 八核,磁盤6*600G sas 15k

主從同步

mysql> grant replication slave on *.* to rep@'172.20.100.%' identified by '123456';

Query OK, 0 rows affected (0.00 sec)

replication slave 為mysql同步的必須權限,此處不要授權all

*.*所有庫所有表

mysql> select user,host from mysql.user;

+------+-----------------------+

| user | host ? ? ? ? ? ? ? ? ?|

+------+-----------------------+

| root | 127.0.0.1 ? ? ? ? ? ? |

| rep ?| 172.20.100.% ? ? ? ? ?|

| ? ? ?| localhost ? ? ? ? ? ? |

| root | localhost ? ? ? ? ? ? |

| ? ? ?| localhost.localdomain |

| root | localhost.localdomain |

+------+-----------------------+

6 rows in set (0.00 sec)

生產環境時,操作主從復制,需要申請停機時間。鎖表會影響業務

鎖表主庫

mysql> flush tables with read lock;

Query OK, 0 rows affected (0.00 sec)

鎖表失效時間以下

mysql> show variables like '%timeout%';

+----------------------------+-------+

| Variable_name ? ? ? ? ? ? ?| Value |

+----------------------------+-------+

| connect_timeout ? ? ? ? ? ?| 10 ? ?|

| delayed_insert_timeout ? ? | 300 ? |

| innodb_lock_wait_timeout ? | 120 ? |

| innodb_rollback_on_timeout | OFF ? |

| interactive_timeout ? ? ? ?| 28800 |

| net_read_timeout ? ? ? ? ? | 30 ? ?|

| net_write_timeout ? ? ? ? ?| 60 ? ?|

| slave_net_timeout ? ? ? ? ?| 3600 ?|

| table_lock_wait_timeout ? ?| 50 ? ?|

| wait_timeout ? ? ? ? ? ? ? | 28800 |

+----------------------------+-------+

10 rows in set (0.00 sec)

mysql> show master status;

+------------------+----------+--------------+------------------+

| File ? ? ? ? ? ? | Position | Binlog_Do_DB | Binlog_Ignore_DB |

+------------------+----------+--------------+------------------+

| mysql-bin.000004 | ? ? ?536 | ? ? ? ? ? ? ?| ? ? ? ? ? ? ? ? ?|

+------------------+----------+--------------+------------------+

1 row in set (0.00 sec)

[root@localhost ~]# mysqldump -uroot -p -S /data/3306/mysql.sock -A -B |gzip >/server/backup/mysql_bak.$(date +%F).sql.gz

-A 備份所有庫

-B 添加參數比如DROP等

[root@localhost backup]# ls

mysql_bak.2017-04-21.sql.gz

解鎖表

mysql> unlock tables;

Query OK, 0 rows affected (0.00 sec)

從庫操作

[root@localhost backup]# mysql -uroot -p -S /data/3307/mysql.sock < /server/backup/mysql_bak.2017-04-21.sql

如果需要停掉從庫,執行以下命令

[root@localhost ~]# mysql -uroot -p -S /data/3307/mysql.sock -e "stop slave;

方法1

cat |mysql -uroot -p'root' -S /data/3307/mysql.sock<< EOF

CHANGE MASTER TO

MASTER_HOST='172.20.100.134',

MASTER_PORT=3306,

MASTER_USER='rep',

MASTER_PASSWORD='123456',

MASTER_LOG_FILE='mysql-bin.000001',

MASTER_LOG_POS=460;

EOF

方法2

mysql> ?CHANGE MASTER TO

-> ?MASTER_HOST='172.20.100.134',

-> ?MASTER_PORT=3306,

-> ?MASTER_USER='rep',

-> ?MASTER_PASSWORD='123456',

-> ?MASTER_LOG_FILE='mysql-bin.000004',

-> ?MASTER_LOG_POS=536;

Query OK, 0 rows affected (0.10 sec)

啟動同步開關

[root@localhost backup]# mysql -uroot -p -S /data/3307/mysql.sock -e "start slave;"

[root@localhost backup]# mysql -uroot -p -S /data/3307/mysql.sock -e "show slave status\G"

Enter password:

*************************** 1. row ***************************

Slave_IO_State: Waiting for master to send event

Master_Host: 172.20.100.134

Master_User: rep

Master_Port: 3306

Connect_Retry: 60

Master_Log_File: mysql-bin.000004

Read_Master_Log_Pos: 696

Relay_Log_File: relay-bin.000002

Relay_Log_Pos: 411

Relay_Master_Log_File: mysql-bin.000004

Slave_IO_Running: Yes

Slave_SQL_Running: Yes

Replicate_Do_DB:

Replicate_Ignore_DB: mysql

Replicate_Do_Table:

Replicate_Ignore_Table:

Replicate_Wild_Do_Table:

Replicate_Wild_Ignore_Table:

Last_Errno: 0

Last_Error:

Skip_Counter: 0

Exec_Master_Log_Pos: 696

Relay_Log_Space: 560

Until_Condition: None

Until_Log_File:

Until_Log_Pos: 0

Master_SSL_Allowed: No

Master_SSL_CA_File:

Master_SSL_CA_Path:

Master_SSL_Cert:

Master_SSL_Cipher:

Master_SSL_Key:

Seconds_Behind_Master: 0 ? ? #和主庫比同步延遲的秒數,這個參數很重要。

Master_SSL_Verify_Server_Cert: No

Last_IO_Errno: 0

Last_IO_Error:

Last_SQL_Errno: 0

Last_SQL_Error:

查看狀態

[root@localhost backup]# mysql -uroot -p'123456' -S /data/3307/mysql.sock -e "show slave status\G" | egrep "Slave_IO_Running|Slave_SQL_Running"

Slave_IO_Running: Yes

Slave_SQL_Running: Yes

如果報錯1007

[root@localhost ~]# mysql -uroot -p -S /data/3307/mysql.sock -e "stop slave;"

[root@localhost ~]# mysql -uroot -p -S /data/3307/mysql.sock -e "set global sql_slave_skip_counter =1 ;" 1就是忽略1次更新,不推薦

[root@localhsot ~]# mysql -uroot -p -S /data/3307/mysql.sock -e "start slave;"

不加班在工作時間輕松配置從庫

在服務器壓力比較小的時候備份

1、鎖表備份全備一份

2、鎖表前后取得show master status值記錄日志里

binlog-ignore-db=information_schema

binlog-ignore-db=mysql

主從庫授權

在生產環境以下參考

主庫(提供寫服務) ? ? 用戶user ?密碼user123 ip 172.20.100.1 port 3306

從庫(提供讀服務) ? ? 用戶user ?密碼user123 ip 172.20.100.2 port 3306

總結

以上是生活随笔為你收集整理的oracle数据库倒顺,mysql常用命令的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。