���� MySQL ���������� ����������� ���� ������ ��� �������������� ���� ������� � ����� ����� ������. ��� ����� ����� ������������ �� ������ �������� �/��� ������������� � ��������������� ��� ����� ��� ���������� ��� ������
���������������� �������� ����� ���� �������� ��������. ��� ��������� � ���� ������, ������ ���������. ������� �� �� ����� ���� ���������� � ����������� ����������� (��� ������ ������ ����...).
���� MySQL ����� ��� �������, � ������:
���� | ��� | Null | ���� | ��������� | Extra |
---|---|---|---|---|---|
���� | char(60) | PRI | |||
Db | char(32) | PRI | |||
������������ | char(16) | PRI | |||
Select_priv | char(1) | N | |||
Insert_priv | char(1) | N | |||
Update_priv | char(1) | N | |||
Delete_priv | char(1) | N | |||
Create_priv | char(1) | N | |||
Drop_priv | char(1) | N |
���� | ��� | Null | ���� | ��������� | Extra |
---|---|---|---|---|---|
���� | char(60) | PRI | |||
Db | char(32) | PRI | |||
Select_priv | char(1) | N | |||
Insert_priv | char(1) | N | |||
Update_priv | char(1) | N | |||
Delete_priv | char(1) | N | |||
Create_priv | char(1) | N | |||
Drop_priv | char(1) | N |
���� | ��� | Null | Key | ��������� | Extra |
---|---|---|---|---|---|
���� | char(60) | PRI | |||
������������ | char(16) | PRI | |||
������ | char(8) | ||||
Select_priv | char(1) | N | |||
Insert_priv | char(1) | N | |||
Update_priv | char(1) | N | |||
Delete_priv | char(1) | N | |||
Create_priv | char(1) | N | |||
Drop_priv | char(1) | N | |||
Reload_priv | char(1) | N | |||
Shutdown_priv | char(1) | N | |||
Process_priv | char(1) | N | |||
File_priv | char(1) | N |
������ ���������� ����� �������������:
$ mysql mysql
mysql> INSERT INTO user VALUES ('%','monty',password('something'),
-> 'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y');
mysql> INSERT INTO user (host,user,password) values('localhost','dummy','');
mysql> INSERT INTO user VALUES ('%','admin','','N','N','N','N','N','N','Y','N','Y','N');
mysql> quit
$ mysqladmin reload
��������� ��� ����� ������������ (������):
monty: | ����������������� (�������������), ������ ������������ ������, ���
������ � mysql.
|
dummy: | ������ ���� ������� � �������������� ���� ������ �� ������� 'db
'.
|
admin: | �� ��������� � ������, �� ��������� ���������� ������ ������ 'mysqladmin reload' and 'mysqladmin processlist'. ����� ���� ������� � �������������� ���� ������ ����� ������� 'db'. |
��������! �� ������ ������������ ������� password()
��� �������� ������������, �������� ������. ���� MySQL ������� ��������
������������� ������.
��������, ������������� � ������� ������������� ����������� ��������, ������������� � ������� DB. ���� ������ ������������ ����� ��� ������, ����� ��������� ������������� ��� ���� ������� � ������� ������������� � ��������� �� ����� ������� � ���� ������ �� ������� db.
���� �� ����������� MIT threads package, �������� ��������, ��� ��� localhost �� ����� ��������, ��� ��� MIT threads package �� ������������ socket-�����������. ��� ��������, ��� �� ������ ������ ���������� ��� hostname (��� �������) ��� �����������, ���� ���� �� ��������� � ����� � ��� �� ��������.
������� ������� ��������� ������� ��� ��������� ���� �������:
������������ | ����������� �� ������ �������� � �������������. |
db | ����������� �� ������ ��������, ������������� � ��� ������. |
������ | ����������� �� ������ �������� � ��� ������. |
������� � ������ 3.20.19 ������� ������� ��� ���� ��������, ��� ������� ���������, ��� ������ ������������ ��������� � ������ ���� ������. �������� ������������� ������������ � ������ ���, ������� ��������������� ���:
INSERT INTO user VALUES('%.external.domain.com','','','N','N','N',
'N','N','N','N','N','N','N');
�������� ������� ��� ������ ����� ��������� ��� ������������ '' (������ ���), � �� ��� ������������ ���, ���� ���� ������������, ��� ����� ������ � ������� ������� � ����� ������ (db �������).
�������� ���������������� ��������� - ��������, �������� �������� ������ ���� MySQL, (��������, ���� ������� �� ���� � ��� ����), ��� ��� �� �����������, ���� ����������� ��������� �����, ����� �� ���� ����������� � �������� ������� ��������� ���������� ���������. ������������� ��������� mysqlaccess ������ ���������� �������� ��������� ����� �����.
������ ����� �������� ������������� ���������� ��������� SQL � ����� ����� �������. ��� �������� �������.
���������, ���������� ��� ���� "��� �������" � '%' � �������� ������� ��������. ��� ������ ��� ������ ��������� ���������������, ����� �������� ������������ � ����������� ���� �������� � ������� �������� � ������ ����� �������������.
���� �������� ��������� �� ������ 'Access denied', �� ������ ����� �� ��������� ��������� � ������� mysqld, �� ������ ������������ ���������� � ����� ������� �������������.
������������� ������ ����������� � ������� ������������� ('user ').
��������� ��� ���� � ������� mysql.server. ��������� � ���������� safe_mysqld � /etc/init.d/mysql.server � � /etc/rc2.d/S99mysql.server .
� Caldera Open Linux ���� �������� � ���� /etc/rc.d/rc.local ���������:
/usr/local/bin/safe_mysql &
�������, ����� ���� ������ ���������� ���� � ������� � MySQL.
������� � ������� ��� ������������-�������� MySQL � ����� ��������� ������� (��������������, ��� ����������� ������ mysql ��������� � ����� ����. ���� ��� �� ���, ������� ������ ����):
safe_mysql &
���� �� �� ������, ����� ������������ ����� ��������� ����� -u ��� ����� � mysql ��� ������ �������, ����� ���������������� � ����� global.h ������:
#define SAFE_USER 1 /* Comment this if you are paranoid */
�� ��������� MySQL ������������� �������� �������� �� ��������� �����, ������� ���� �� ���������. MySQL ����� ������ ��� ������ �� ���� ����������� ����. ���� �� ��������� ��, ����� ���� � �������������� ���������� ����� �������� NULL, �� �������� � ���� global.h ������:
#define DONT_USE_DEFAULT_FIELDS
�� ��������� MySQL ������������� ������ 1120 ������ �����. �� ������ ����������� ��� ��������, ���������� ���� nisam.h � ������� �������� N_MAX_KEY_LENGTH. �������� ��������, ��� ��� ����� ����� � �������� ������������������. ��� ������� ������ ��� �������� ������, ��������� ����� ���������� ����, ����� �������� ������ ���������� ����. ����� �������� ��� ����������� � ������� "�����".
�� ��������� MySQL ��������� ������ �������� ISO8859-1 (latin1). �� ������ �������� ��� �� ����� ������������, ��������� ��������� �����.
--with-charset=[charset]��� [charset] ����� ���� ���� ��: latin1, latin2, koi8_ru, dec8, dos, hp8, swe7, usa7.
����� ������ � ���, ��� ��������� ����� ������ ��������, ���������� ������� ����� � ����������.
�������� ��������: ���� �� ������� ������ �������� ��� ������ ���� ������, �� ������ ������ ��������� isamchk � ����������� -e, � -q ��� ���� ������, ����� MySQL �� ����� �������� ���������.
���� �� ��������� C++, � Yacc, �� ������������ ������ �������� ������� � ���� MySQL. ���� �� ���������, �� ���� ����.
������� �������� ������ � ���� sql_lex.cc � ������ ������� � ������ sql_functions.
����� �������� ��� ������ � ���� sql_yacc.y. ������ ���������� ������ ������������� yacc. �� ������ �������� ��� � ������ �����. ����� ���������� ��������� �������, � �������� 'item' � ����� �����������.
� ����� item_func.h ��������� �����, ������� ����������� �� Item_num_func ��� Item_str_func, � ����������� �� ����, ���������� �� ���� ������� ����� ��� ������.
� intem_func.cc ��������:
��� ��������� ������� �� ������ ����� ���������� ��������� �������:
��� ������ �� ������� ���� ��������� 'max_length' ���������� �� ���������� ����������. max_length - ������������ ����� ��������, ������� ������� ����� ������� (������������ ����� ������������� ��������).
���� ������� �� ����� ���������� null, �� ������ ����� ���������� 'maybe_null=0'.
��� ��������� ������� �������� 'String *str', ������������� ����� ��� �������� ����������. ��������� ������� ������ ������� ������, ������� ������ ���������.
��� ��������� ������� ������ �������� ��������� ������ ������, ��� �� ��������� ����������! ��������� ������� �� ����������...
����� ������� ������ ��������� ������ � MySQL - ������� LOAD DATA INFILE. ��� � 3-20 ��� �������, ��� ������������� ���������� INSERT. ��� ��� �������� ���������� �������������� �� ������ ������������ ��������� ���������, ����� ��������� ������������ ����� �� ����� �������, � �� ����� ��� ������ �����������. ��� ����� ���� ���������� � ����� MySQL �������� ��� ������, ��� ������������ ������ ���� � ����� ���� ������.
isamchk -rq -k0 [���_����_������]/[���_�������] | �������� ������ |
LOAD DATA INFILE ... | ������ ����� ������ |
isamchk -rq [���_����_������]/[���_�������] | �������� ������ ������� ������ |
mysqladmin reload. | ��������, ����� mysql ����������� ����� ������� |
$ mysqld -O
��������� ���������� � ����� -O:
��� | �������� �� ��������� | |
---|---|---|
back_log | ���������� ������ ������� ��� �������� tcp/ip �����������. ���������, ��� ���������� ��� ��������, ����� �� �������� ������� ���������� ����������� � �������� ������� �������. ��������� �� ����� ����� ������������ �������� ���� ���������� 128 ��� 256. ����������� �� ���� ������� ����� ���������� �� man-�������� listen(2). | |
keybuffer | ������ ���-������, ��� �������� ���� ������� �������������� ������. ������� ����� ���� ����� ������ �������������. � �������������� -Sl ����������� ������ ���� �����. | |
max_allowed_packet | ����� ����������� ������� ����� ���� ������� �� ����� ��������, ���� ������������ ���� ������� �������. ��������� ����� = 'net_buffer_length'. �� ������ ����������� ���������� ���� �����. | |
net_buffer_length | ��������� ������ ������ �����������. �� ������ ����������� ���������� ���� �����. | |
max_connections | ������������ ����� �����������, ������� mysqld ����� ����� ��������� � ���� � �� �� �����. | |
table_cache | ������������ ����� ������ ����������� ��������� �� �������. ������� �������� ���������, ��� ��������� ������� � ����� ������������ ��������. ������, ������ �������� ������� ������� ����� ������. | |
recordbuffer | ������ ���-������ ��� �������� ����������� �������. �� ������ ����������� ���������� ���� �����. | |
sortbuffer | ������ ������, ������������� ��� ����������. �� ������ ����������� ���������� ���� �����. | |
max_sort_length | ������������ ����� ��� ����������? |
���� �� ������ ���������� ���������, ������� ������� �������� ���������� �������, ��� �������� ������� �������� ��������� �������� recordbuffer � sortbuffer �������� �� 32K. �� ������ ���� ��������� recordbuffer �� 8�� ��� ������ �������. ����� ���� ����� ������������� ���������� �������� ���������� keybuffer �� ������� � 512��. ��� �������� ������� ����� ������, � ������� ������������� ������.
����� ����, ��� �� ��������� ������ � ���� ���� ������, �� ������ ��������� ������� 'isamchk -a' ��� ������ ���������. ��������� isamchk ������� ���������� �� ����� ��������, ������� ������ ������������ �����������. ������, ���� ��������� isamchk ������ ������� �� �������. ��� ���� ��������������, ��� ��� ������ � ������� �� ����� isamchk ��������� � �������� ������������� ��� ����� �������.
key = 1 or A = 10 -> NULL (������ ������������ ����) key = 1 or A = 10 and key=2 -> key = 1 OR key = 2 key_part_1 = const and key_part_3 = const -> key_part_1 = const
const_table.key = constant
const_table.key_part_1 = const_table2.field and
const_table.key_part_2 = constant
���� ��������� �����, ������� �� ������ �������, ����� �������������� ���������� �����, ������� ���������� ���� �������. ������ ����� ����������� �� ������ ��������� ������ ���, ����� ��������. ��� ������� �������, � �������� 1 ��� �� ����.
�� ������ ��������� ����� �����, ��������� ������� ������������� ����������. ��������, MEDIUMINT ����� ������ ����������.
������ �� ������ ������� ����� ��������� ��� ������, � ������� �� ������ ���������, ���� ���� �������� � �������.
������ � ����, ��� ���� ������������� ����� � mysql �������������� ����������� �������. ������� ����� ���������� ����� (VARCHAR, BLOBs), ����� �������� ������������� �� 10-200%.
� ��������� ����� ���������� INSERT ���� ������ ������ ��� ������� ������� ��������� (NULL) � �� ������ �������.
��� ������������� INSERT ��� �������, ������� ����� �������������� �� ����� �������, ����������� ���������:
�� ����� ����� ������� � �������� 'warnings information' ������������ ������ ��� ������������� 'ALTER TABLE' ��� 'LOAD DATA FROM...'.
111.222.333
111 | ���� ������ ����� ����������, ��� ��������, ��� ���� ������� ��������� ���������. ��� ����� �������� ��������� ����� �������� ������, ����� ���������, � �.�. ������ ������ ������� ��������� ����������� ����� ���������� �������� ����� ����������� ����� ����������. �� ������� ���� ��� �������� ��������� ���� � ������������� ���� �������. |
222 | ������������ ����� ���/�������������� �����������. ����� �������� ������ � ��������� ���������� SQL ��� ���������� ������������. ��� �� �������� ������ ������� ��������� � ����� ���������� ����������, �� ��������� ��������� �� ����� �����������. |
333 | ��������� ���������� ���������, ������� �� ������ ��������� ���-������ � ������ �� �����. ����� ������� �������� ����� - ���������� �������� ���� SQL, ������� ��������� � ������������ � ������������� ������� �������. ���� �� ��������� ������������ �������� ����� ��������� SQL-92 ��� ����� ���� ������ (��� ������-�� � ����...), ��� ������ ���� ������. |
������� ���� - ������ ��������� ���� NEWS, ����� �� ���������� ����� ������. ��� ������ ���� ���, ������������� � ���, ��� ������ ����������, ������� � ����� ��������� �����������.
�� ������ ������ ������� ��������� �������� ��������� "������-������", ������������� ������� MySQL ��� ����� ����� �������� � �������� ���� ������.
< = ������ > = ������ [] 1 ���� [2: ] 2 ����� (������ ���� ������) [3: ] 3 ����� (������ ���� ������) [4: ] 4 ����� (������ ���� ������) [string: ] ������, ����������� �����. [length: ] ����� ������ �����. ��������� Net_store_length() ��� �����! ���� � ���, ����� �������� ����� �������� ������ ������ � 1 ����, �� ��������� � ����� ������� ������ (� NULL).
������ ������������ ����� ����� ��������� �������:
[3: ����� ������] [����� ������] ������
��� ������ ������ ����������� [0] ����� ������� ��������� ������, ����� �������� ������� ��������� ����� ������.
������ ������� ���������� � 0 � ������������� ��� ������� ����������/����������� ������.
> [protocol version] [string: password crypt seed]
< [2: 0] [3: max_allowed_client_packet_length] [string: user name]
[string: scrambled password]
> ok packet
���������� � ����� password.c �� ���������� MySQL ����� ����� ������������ ��� ���������� �������. ������ ������ ���� ������, ���� ������������ �� ����� �������� ������.
[0] [length: affected_rows] [length: unique id]
����� ��������� � ����� �����.
> [255] [string: error message]
< [command number]
enum enum_server_command{SLEEP,QUIT,INIT_DB,QUERY,FIELD_LIST, CREATE_DB,DROP_DB,RELOAD,SHUTDOWN,STATISTICS, PROCESS_INFO,CONNECT}
< [QUERY command] [string: query string] (The end null is not sent)
> [0] [length: affected rows] [length: insert id] (Insert, delete...)
���:
> [length: column_count] (a query result)
> column field data packets
> row data packets
: ������ ���������� ���� �� ������ �����, ������� ������� ������ �� ���������� ������� [254]. �������������: ����� ������� ������, ������� ���������� � ������� 254! ������ ����� ���� 'data' ����� ���� 'column count'.
������ ������� ����:
[:length] == NULL_LENGTH -> NULL field
���:
[:length] [length data] (������ �� ������������ �� \0!)
����� ������ ������� ������� �� 5 �������� �� ���������� �������:
[:string table name]
[:string column name]
[:3 create length of column (may be larger in a few cases)]
[:1 type (as of enum_field_types)]
[:1 flag] [:1 decimals] (2 �����!)
��� ������������� ������� list_fields ������� ������ �������:
[:string default]
���������� � ������ libmysql.c, net.c � password.c ����� ��������� ���������� � �������� �������.
��� ��������� �������� ������� ����������� ������� (�� ������ ������� � �������, ������� �������� �������, ���������� � ������� �� ������� ��������. ������ ��� ����� $DATADIR/[dbname], ��� dbname - ��� ���� ������, ������� �������� �������.):
prompt> isamchk -d table_name ISAM file: table_name Data records: 215 Deleted blocks: 0 Recordlength: 85 Record format: Packed table description: Key Start Len Index Type 1 37 14 unique text packed stripped 2 1 30 multip. text packed stripped 3 51 4 multip. long 4 31 2 multip. short 33 2 short 35 2 short |
prompt> isamchk -d -v table_name ISAM file: Customer Isam-version: 2 Creation time: 1996-12-17 21:40:04 Data records: 0 Deleted blocks: 0 Datafile: Parts: 0 Deleted data: 0 Datafilepointer (bytes): 4 Keyfile pointer (bytes): 3 Recordlength: 374 Record format: Packed table description: Key Start Len Index Type Root Blocksize Rec/key 1 2 2 unique short -1 1024 1 2 4 80 multip. text packed stripped -1 1024 1 3 2 2 multip. short -1 1024 1 |
���������� ����������� ����������:
ISAM file | ��� ISAM-�����. |
Isam-version | ������ ISAM �������. ������ ������ 2. |
Creation time | ����� ���� ������ ��� ������? |
Recover time | ����� � ��������� ��� ��� ������������ ���� �������/������? |
Data records | ������� �������/�����. |
Deleted blocks | ������� ��������� ������ ��� ��� �������� �����? ��. ������� � ������� �� isamchk ��� ���������� ������������ ���������� �� ��������������� �����. |
Datafile: Parts | ��� ������������ ������ ��� ����������, ������� ������ ������ � ���. ��� ���������������� ������� ��� ����� ��� ����� �� ��, ��� � Data records. |
Deleted data | ������� ����� ���� �������� ��������� ������. |
Datafilepointer | ������� ������ �������� ��������� ����� ������? ��� 2, 3 ��� 4 �����. ����������� ������ ��������� 2 �������, �� ��� �� ����� ����������� �� MySQL. ��� ������������� ������ ��� ����� ������. ��� ������������ ������ ��� ����� �����. |
Keyfile pointer | ������� ������ �������� ��������� ����� ������? ��� ������ 1, 2 ��� 3 �����. ����������� ������ ��������� 2 �������, �� ��� ����������� mysql �������������. ��� ������ ����� �����. |
Max datafile length | ������� ���� ����� ������������ ��� ���� ������� ���� ������ (.ISD). |
Max keyfile length | ������� ���� ����� ������������ ��� ���� ������� ���� ������. |
Recordlength | ������� ������� �������� ������ ������/������? |
Record format | ����� ������ ����� ������ ������/������? |
table description | ������ ���� ������ � �������. ��� ������� ����� ��������� ������� ���������� ������� ������ (������� ���������� ���������� � ��������� �������). |
������� ���������� ������� ������ ��� ������� �����:
Key | ����� �����. |
Start | ��� � ������/������ ���������� ��������� �����. |
Len | ����� ����� ��������� �����? ��� ����������� ����� ��� ������ ������ ����� ����. ��� ����� ��� ����� ���� ������ ������ ����� (���� MySQL ��� �� �� ������������ ����� �������). |
Index | unique ��� multip. |
Type | ����� ��� ������ ����� ��� ��������� �����? ��� - C ��� ������ (����������� packed ��� short). |
Root | ����� ����� ���������� �����. |
Blocksize | ������ ������� ���������� �����. �� ��������� 1024, �� ��� ����� ���� �������� �� ����� ����������. |
Rec/key | �������������� ��������, ������������ �������������. ���
��������, ������� ������� ���������� �� ���� �����. ���������� ����
������ ����� �������� 1. ��� ����� ���������� ����� ����, ��� �������
��������� � ���������������, ��������� |
MySQL FAQ ����� �������� ���������� �� ���� ����.
���� ������ ��������� ���������� ������� ������ ������������ ����, ��� ����� �������� � ������������ � MySQL.
������� ������ ����� ��� B-tree ����� 1024 � � ���� ������ (�� ����������� root) - �� ������� ���� 2/3 �� �������. ��� ��������� �������������� (id = 4 �����) ��� �������� 1024/(4+4)*2/3=85 ������ � ������������ � �������, � ����� ������� ����� �������� ������� �������� ������ � 5 �����������������.
���� �� �������, ����� ���� ������� B-tree ���� 100% �������, ��������� isamchk � ������ -rq ��� ������ ������� �������.
������ ������ ����� ����� ����� ���� ��������� �����. ���� ��� ����� ����� ��� �� ����� �������, ������ ����� ����� ����� �������� 1 ����. ��� ��������� ����� ������� 4 �������� ����� ��������� ��������� �������.
���� ���� �������������� �������, �� nisam ���������� �������� ����� � ������ �����, ����� ������������ ���������������� �����.
��� ����� ������ ��������/������� ����� key_buffer (�� ��������� 1M) ��� ��� ���� root ������������ ������.
������ ���������� ��������������, ��� ��� ���������� �� ������ ����������������� � ����� ������ ������ ��� ������ �� ������ ������. ��� ���� ����� ������� �������������, ����� �� ������ ������ ������ ������� � ��� �� ����� ������.
���� ���������� ����� �� ����������� �������� � ����������������� ������ MySQL � ��� ������� �������.
��������� ���������� ������� � ����������� �������� ������ ������ ������� ���� � �������������� ����� �������������� ������������, � ������� ��� ��������� ��� ���������� ����������� �� ������������� MySQL.
����� �������� ��� views, rollback � triggers ����� ��������� �� �����-�� ����� �����������. ��� ������� ������������� ����������� ������.
���������� � ������� �����������, ��������, ����� ��������� � ������ 3.21.0
����� MySQL ������� �� Linux ������� � ���������� ������ Linux, �� ������ ������ ������� ��� ��������. ����������, ��� ������. ����� ������� ���� ����� ��� Linux Threads manager, ����, ����� ������������ ����������� � ����, ����� ���������� �������.
� ���������� ������� ��������� ���, ���� ��� ����������� ��� ��������� ��� ����������� ���������� ����� ����������, ������� ������������� ������. ��� ������� ��� ����� ���������� ����, �������� ����� ����������� ���� ���-�� �� ���� ������.