MariaDB雜記(1)

MySQL

一、CentOS6二進制格式安裝MariaDB

1、首先停止老版本的MySQL,並刪除

[root@qq ~]# service mysqld stop
Stopping mysqld:                                           [  OK  ]
[root@qq ~]# 
[root@qq ~]# rpm -e mysql-server
warning: /var/log/mysqld.log saved as /var/log/mysqld.log.rpmsave
[root@qq ~]# 

日誌清除
[root@qq ~]# rm /var/log/mysqld.log.rpmsave 
rm: remove regular file `/var/log/mysqld.log.rpmsave'? y
[root@qq ~]# 

2、創建mysql系統組和mysql系統用戶

[root@qq source-packet]# groupadd -r mysql

[root@qq source-packet]# id mysql
uid=27(mysql) gid=27(mysql) groups=27(mysql)

3、解壓MariaDB目錄到/usr/local

[root@qq source-packet]# tar xf mariadb-5.5.43-linux-x86_64.tar.gz -C /usr/local

[root@qq source-packet]# cd /usr/local/
[root@qq local]# ll
total 76
drwxr-xr-x. 12 root root  4096 Aug  4 13:10 mariadb-5.5.43-linux-x86_6

安裝要求在/usr/local有mysql的連接

`mysql' -> `mariadb-5.5.43-linux-x86_64'
[root@qq local]# ll
total 76
drwxr-xr-x. 12 root root  4096 Aug  4 13:10 mariadb-5.5.43-linux-x86_64
lrwxrwxrwx.  1 root root    27 Aug  4 13:12 mysql -> mariadb-5.5.43-linux-x86_64

查看目錄文件

[root@qq local]# cd mysql/
[root@qq mysql]# ll
total 220
drwxr-xr-x.  2 root root   4096 Aug  4 13:10 bin
-rw-r--r--.  1 qq   qq    17987 Apr 30  2015 COPYING
-rw-r--r--.  1 qq   qq    26545 Apr 30  2015 COPYING.LESSER
drwxr-xr-x.  3 root root   4096 Aug  4 13:10 data
-rw-r--r--.  1 qq   qq     8245 Apr 30  2015 EXCEPTIONS-CLIENT
drwxr-xr-x.  3 root root   4096 Aug  4 13:10 include
-rw-r--r--.  1 qq   qq     8694 Apr 30  2015 INSTALL-BINARY
drwxr-xr-x.  3 root root   4096 Aug  4 13:10 lib
drwxr-xr-x.  4 root root   4096 Aug  4 13:10 man
drwxr-xr-x. 11 root root   4096 Aug  4 13:10 mysql-test
-rw-r--r--.  1 qq   qq   108813 Apr 30  2015 README
drwxr-xr-x.  2 root root   4096 Aug  4 13:10 scripts
drwxr-xr-x. 27 root root   4096 Aug  4 13:10 share
drwxr-xr-x.  4 root root   4096 Aug  4 13:10 sql-bench
drwxr-xr-x.  3 root root   4096 Aug  4 13:10 support-files

4、更改所有文件權限屬主爲root,屬組爲mysql

[root@qq mysql]# chown -R root:mysql ./*
[root@qq mysql]# ll
total 220
drwxr-xr-x.  2 root mysql   4096 Aug  4 13:10 bin
-rw-r--r--.  1 root mysql  17987 Apr 30  2015 COPYING
-rw-r--r--.  1 root mysql  26545 Apr 30  2015 COPYING.LESSER
drwxr-xr-x.  3 root mysql   4096 Aug  4 13:10 data
-rw-r--r--.  1 root mysql   8245 Apr 30  2015 EXCEPTIONS-CLIENT
drwxr-xr-x.  3 root mysql   4096 Aug  4 13:10 include
-rw-r--r--.  1 root mysql   8694 Apr 30  2015 INSTALL-BINARY
drwxr-xr-x.  3 root mysql   4096 Aug  4 13:10 lib
drwxr-xr-x.  4 root mysql   4096 Aug  4 13:10 man
drwxr-xr-x. 11 root mysql   4096 Aug  4 13:10 mysql-test
-rw-r--r--.  1 root mysql 108813 Apr 30  2015 README
drwxr-xr-x.  2 root mysql   4096 Aug  4 13:10 scripts
drwxr-xr-x. 27 root mysql   4096 Aug  4 13:10 share
drwxr-xr-x.  4 root mysql   4096 Aug  4 13:10 sql-bench
drwxr-xr-x.  3 root mysql   4096 Aug  4 13:10 support-files
[root@qq mysql]# 

5、創建一個LVM邏輯卷保存MySQL數據

5.1 創建1個20G分區

5.1.1   
fdisk /dev/sda
Command (m for help): n
First cylinder (18511-32636, default 18511): 24134
Last cylinder, +cylinders or +size{K,M,G} (24134-32636, default 32636): +20G

Command (m for help): p

Disk /dev/sda: 268.4 GB, 268435456000 bytes
255 heads, 63 sectors/track, 32635 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0005665b

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          26      204800   83  Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2              26        6400    51200000   83  Linux
/dev/sda3            6400       11500    40960000   83  Linux
/dev/sda4           11500       32636   169778176    5  Extended
/dev/sda5           11500       15962    35840000   83  Linux
/dev/sda6           15962       18511    20480000   83  Linux
/dev/sda7           18512       20424    15360000   83  Linux
/dev/sda8           20424       22336    15360000   83  Linux
/dev/sda9           22336       23611    10240000   83  Linux
/dev/sda10          23611       24133     4194304   82  Linux swap / Solaris
/dev/sda11          24134       26745    20980890   83  Linux

Command (m for help): w
The partition table has been altered!

Calling ioctl() to re-read partition table.

WARNING: Re-reading the partition table failed with error 16: Device or resource busy.
The kernel still uses the old table. The new table will be used at
the next reboot or after you run partprobe(8) or kpartx(8)
Syncing disks.
[root@qq mysql]# 
[root@qq mysql]# partx -a /dev/sda
BLKPG: Device or resource busy
error adding partition 1
BLKPG: Device or resource busy
error adding partition 2
BLKPG: Device or resource busy
error adding partition 3
BLKPG: Device or resource busy
error adding partition 4
BLKPG: Device or resource busy
error adding partition 5
BLKPG: Device or resource busy
error adding partition 6
BLKPG: Device or resource busy
error adding partition 7
BLKPG: Device or resource busy
error adding partition 8
BLKPG: Device or resource busy
error adding partition 9
BLKPG: Device or resource busy
error adding partition 10
[root@qq mysql]# partx -a /dev/sda
BLKPG: Device or resource busy
error adding partition 1
BLKPG: Device or resource busy
error adding partition 2
BLKPG: Device or resource busy
error adding partition 3
BLKPG: Device or resource busy
error adding partition 4
BLKPG: Device or resource busy
error adding partition 5
BLKPG: Device or resource busy
error adding partition 6
BLKPG: Device or resource busy
error adding partition 7
BLKPG: Device or resource busy
error adding partition 8
BLKPG: Device or resource busy
error adding partition 9
BLKPG: Device or resource busy
error adding partition 10
BLKPG: Device or resource busy
error adding partition 11
[root@qq mysql]# 

5.1.2 改變文件類型
Command (m for help): t
Partition number (1-11): 11
Hex code (type L to list codes): 8e
Changed system type of partition 11 to 8e (Linux LVM)

Command (m for help): p

Disk /dev/sda: 268.4 GB, 268435456000 bytes
255 heads, 63 sectors/track, 32635 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x0005665b

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          26      204800   83  Linux
Partition 1 does not end on cylinder boundary.
/dev/sda2              26        6400    51200000   83  Linux
/dev/sda3            6400       11500    40960000   83  Linux
/dev/sda4           11500       32636   169778176    5  Extended
/dev/sda5           11500       15962    35840000   83  Linux
/dev/sda6           15962       18511    20480000   83  Linux
/dev/sda7           18512       20424    15360000   83  Linux
/dev/sda8           20424       22336    15360000   83  Linux
/dev/sda9           22336       23611    10240000   83  Linux
/dev/sda10          23611       24133     4194304   82  Linux swap / Solaris
/dev/sda11          24134       26745    20980890   8e  Linux LVM

Command (m for help): w

5.2 創建LVM文件系統

5.2.1 創建PV
[root@qq mysql]# pvcreate /dev/sda11
  Physical volume "/dev/sda11" successfully created
[root@qq mysql]# pvs
  PV         VG   Fmt  Attr PSize  PFree 
  /dev/sda11      lvm2 ---  20.01g 20.01g
[root@qq mysql]# 

5.2.2 以/dev/sda11創建一個名爲myvg的vg,
[root@qq mysql]# vgcreate myvg /dev/sda11
  Volume group "myvg" successfully created
[root@qq mysql]# vgs
  VG   #PV #LV #SN Attr   VSize  VFree 
  myvg   1   0   0 wz--n- 20.01g 20.01g
[root@qq mysql]# 

5.2.3 創建真正能存放數據的LV  
[root@qq mysql]# lvcreate -L 10G -n mydata myvg  #10G大小,名字爲mydata,基於名叫myvg的VG創建
  Logical volume "mydata" created
[root@qq mysql]# lvs
  LV     VG   Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  mydata myvg -wi-a----- 10.00g                                                    
[root@qq mysql]# 

5.3 格式化lv爲xfs文件系統

5.3.1 安裝xfs的rpm包    
[root@qq ~]# yum install -y xfsprogs

5.3.2 查看內核中的xfs模塊信息
[root@qq ~]# modprobe xfs
[root@qq ~]# modinfo xfs
filename:       /lib/modules/2.6.32-504.el6.x86_64/kernel/fs/xfs/xfs.ko
license:        GPL
description:    SGI XFS with ACLs, security attributes, large block/inode numbers, no debug enabled
author:         Silicon Graphics, Inc.
srcversion:     4392D4D583B9D2781E4F61E
depends:        exportfs
vermagic:       2.6.32-504.el6.x86_64 SMP mod_unload modversions 

5.3.3 格式爲xfs文件系統
[root@qq mysql]# mkfs.xfs /dev/myvg/mydata 
meta-data=/dev/myvg/mydata       isize=256    agcount=4, agsize=655360 blks
         =                       sectsz=512   attr=2, projid32bit=0
data     =                       bsize=4096   blocks=2621440, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0
log      =internal log           bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
[root@qq mysql]# 

[root@qq mysql]# blkid /dev/myvg/mydata 
/dev/myvg/mydata: UUID="82842935-2d9c-413b-83cc-8040a1542ded" TYPE="xfs" 
[root@qq mysql]# 

5.3.4 開機掛載改xfs分區
5.3.4.1 創建掛載目錄
[root@qq mysql]# mkdir /mydata

5.3.4.2 編輯/etc/fstab文件掛載xfs分區;
[root@qq mysql]# vim /etc/fstab 

/dev/myvg/mydata        /mydata                 xfs     defaults        0 0

5.3.4.3 使用mount -a掛載
[root@qq mysql]# mount -a
[root@qq mysql]# df -lh
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/myvg-mydata
                       10G   33M   10G   1% /mydata
[root@qq mysql]# 

[root@qq mysql]# mount
……
/dev/mapper/myvg-mydata on /mydata type xfs (rw)
[root@qq mysql]# 

5.3.4.3 在/mydata分區創建一個目錄專門存放mysql的數據,並將屬主屬組都改爲mysql;因爲運行mysql數據庫的是mysql用戶,所以它需要對該目錄有讀寫執行權限
[root@qq mysql]# cd /mydata/
[root@qq mydata]# mkdir data
[root@qq mydata]# chown mysql.mysql data
[root@qq mydata]# ll
total 0
drwxr-xr-x. 2 mysql mysql 6 Aug  4 13:47 data
[root@qq mydata]# 

6、初始化配置

6.1 安裝默認的數據庫,可使用文件 --help查看所有選項

通過mysql_install_db安裝幾個默認的數據庫,並指明--user用戶未mysql,數據庫安裝目錄是/mydata/data
[root@qq mysql]# pwd
/usr/local/mysql
[root@qq mysql]# scripts/mysql_install_db --user=mysql --datadir=/mydata/data/

Installing MariaDB/MySQL system tables in '/mydata/data/' ...
160804 15:14:08 [Note] ./bin/mysqld (mysqld 5.5.43-MariaDB) starting as process 26114 ...
OK
Filling help tables...
160804 15:14:10 [Note] ./bin/mysqld (mysqld 5.5.43-MariaDB) starting as process 26124 ...
OK

To start mysqld at boot time you have to copy
support-files/mysql.server to the right place for your system

PLEASE REMEMBER TO SET A PASSWORD FOR THE MariaDB root USER !
To do so, start the server, then issue the following commands:

'./bin/mysqladmin' -u root password 'new-password'
'./bin/mysqladmin' -u root -h qq password 'new-password'

Alternatively you can run:
'./bin/mysql_secure_installation'

which will also give you the option of removing the test
databases and anonymous user created by default.  This is
strongly recommended for production servers.

See the MariaDB Knowledgebase at http://mariadb.com/kb or the
MySQL manual for more instructions.

You can start the MariaDB daemon with:
cd '.' ; ./bin/mysqld_safe --datadir='/mydata/data/'

You can test the MariaDB daemon with mysql-test-run.pl
cd './mysql-test' ; perl mysql-test-run.pl

Please report any problems at http://mariadb.org/jira

The latest information about MariaDB is available at http://mariadb.org/.
You can find additional information about the MySQL part at:
http://dev.mysql.com
Support MariaDB development by buying support/new features from MariaDB
Corporation Ab. You can contact us about this at [email protected].
Alternatively consider joining our community based development effort:
http://mariadb.com/kb/en/contributing-to-the-mariadb-project/

查看安裝目錄,對於MySQL而言數據庫就是目錄,目錄和數據庫是映射關係;
[root@qq mysql]# ls /mydata/data/
aria_log.00000001  aria_log_control  mysql  performance_schema  test
[root@qq mysql]# 

6.2 複製support-files目下的mysql.server的腳本,重名名爲mysqld到/etc/rc.d/init.d下作爲服務腳本

6.2.1 複製並重命名
[root@qq mysql]# cp support-files/mysql.server /etc/rc.d/init.d/mysqld

6.2.2 把腳本通過chkconfig命令加入服務
[root@qq mysql]# chkconfig --add mysqld
[root@qq mysql]# 
[root@qq mysql]# chkconfig --list mysqld
mysqld          0:off   1:off   2:on    3:on    4:on    5:on    6:off
[root@qq mysql]# 

7、限定MySQL配置文件的生效範圍

ps MySQL配置文件解讀

[root@qq support-files]# ll
total 80
-rwxr-xr-x. 1 root mysql  1153 Apr 30  2015 binary-configure
-rw-r--r--. 1 root mysql  1328 Apr 30  2015 magic
-rw-r--r--. 1 root mysql  4914 Apr 30  2015 my-huge.cnf
-rw-r--r--. 1 root mysql 20418 Apr 30  2015 my-innodb-heavy-4G.cnf      #4G內存
-rw-r--r--. 1 root mysql  4901 Apr 30  2015 my-large.cnf        #512M內存
-rw-r--r--. 1 root mysql  4914 Apr 30  2015 my-medium.cnf       #256M內存
-rw-r--r--. 1 root mysql  2840 Apr 30  2015 my-small.cnf        #64M內存
-rwxr-xr-x. 1 root mysql  1061 Apr 30  2015 mysqld_multi.server
-rwxr-xr-x. 1 root mysql   839 Apr 30  2015 mysql-log-rotate
-rwxr-xr-x. 1 root mysql 12196 Apr 30  2015 mysql.server
drwxr-xr-x. 3 root mysql  4096 Aug  4 13:10 SELinux
[root@qq support-files]# 

7.1 創建目錄

[root@qq mysql]# mkdir /etc/mysql
[root@qq mysql]# 

7.2 複製support-file目下的配置文件到/etc/mysql並命名爲my.cnf

[root@qq mysql]# cp support-files/my-large.cnf /etc/mysql/my.cnf
[root@qq mysql]# ls /etc/mysql/
my.cnf
[root@qq mysql]#

8、調整MySQL配置文件

[root@qq ~]# vim /etc/mysql/my.cnf

# The MariaDB server
[mysqld]
datadir = /mydata/data
innodb_file_per_table = on
skip_name_resolve = on

9、啓動測試

[root@qq ~]# service mysqld start
Starting MySQL........                                     [  OK  ]
[root@qq ~]# ss -tnl | grep :3306
LISTEN     0      50                        *:3306                     *:*     
[root@qq ~]# 

[root@qq mysql]# ps aux | grep mysql
root     27412  0.0  0.2  11472  1380 pts/1    S    22:44   0:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --datadir=/mydata/data --pid-file=/mydata/data/qq.pid

二、MariaDB

查看用戶表

mysql> use mysql
Database changed
mysql> SELECT User,Host,Password FROM user;
+------+-----------+----------+
| User | Host      | Password |
+------+-----------+----------+
| root | localhost |          |
| root | qq        |          |
| root | 127.0.0.1 |          |
| root | ::1       |          |
|      | localhost |          |
|      | qq        |          |
+------+-----------+----------+
6 rows in set (0.02 sec)

安全加固(刪除匿名用戶,設置root密碼)

[root@qq bin]# cd /usr/local/mysql/bin/n
[root@qq bin]# ./mysql_secure_installation

./mysql_secure_installation: line 379: find_mysql_client: command not found

NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
      SERVERS IN PRODUCTION USE!  PLEASE READ EACH STEP CAREFULLY!

In order to log into MariaDB to secure it, we'll need the current
password for the root user.  If you've just installed MariaDB, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.

Enter current password for root (enter for none): 
OK, successfully used password, moving on...

Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.

Set root password? [Y/n] y
New password: 
Re-enter new password: 
Password updated successfully!
Reloading privilege tables..
 ... Success!

By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them.  This is intended only for testing, and to make the installation
go a bit smoother.  You should remove them before moving into a
production environment.

Remove anonymous users? [Y/n] y
 ... Success!

Normally, root should only be allowed to connect from 'localhost'.  This
ensures that someone cannot guess at the root password from the network.

Disallow root login remotely? [Y/n] n       #是否禁止管理員遠程登陸,生成環境應該禁止;
 ... skipping.

By default, MariaDB comes with a database named 'test' that anyone can
access.  This is also intended only for testing, and should be removed
before moving into a production environment.

Remove test database and access to it? [Y/n] n
 ... skipping.

Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.

Reload privilege tables now? [Y/n] y
 ... Success!

Cleaning up...

All done!  If you've completed all of the above steps, your MariaDB
installation should now be secure.

Thanks for using MariaDB!

使用root賬號密碼連接測試

[root@qq bin]# mysql -uroot -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 10
Server version: 5.5.43-MariaDB-log MariaDB Server

Copyright (c) 2000, 2013, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> 
mysql> use mysql
Database changed
mysql> SELECT User,Host,Password FROM user;
+------+-----------+-------------------------------------------+
| User | Host      | Password                                  |
+------+-----------+-------------------------------------------+
| root | localhost | *E74858DB86EBA20BC33D0AECAE8A8108C56B17FA |
| root | qq        | *E74858DB86EBA20BC33D0AECAE8A8108C56B17FA |
| root | 127.0.0.1 | *E74858DB86EBA20BC33D0AECAE8A8108C56B17FA |
| root | ::1       | *E74858DB86EBA20BC33D0AECAE8A8108C56B17FA |
+------+-----------+-------------------------------------------+
4 rows in set (0.00 sec)

mysql> 

三、MariaDB使用什錦

查看數據庫版本

mysql> status
--------------
mysql  Ver 14.14 Distrib 5.1.73, for redhat-linux-gnu (x86_64) using readline 5.1

Connection id:      20
Current database:   
Current user:       root@localhost
SSL:            Not in use
Current pager:      stdout
Using outfile:      ''
Using delimiter:    ;
Server version:     5.5.43-MariaDB-log MariaDB Server
Protocol version:   10
Connection:     Localhost via UNIX socket
Server characterset:    latin1
Db     characterset:    latin1
Client characterset:    latin1
Conn.  characterset:    latin1
UNIX socket:        /tmp/mysql.sock
Uptime:         10 hours 8 min 58 sec

Threads: 1  Questions: 37  Slow queries: 0  Opens: 0  Flush tables: 2  Open tables: 26  Queries per second avg: 0.001
--------------

mysql> 

查看可執行的客戶端命令

mysql> 
mysql> help

For information about MySQL products and services, visit:
   http://www.mysql.com/
For developer information, including the MySQL Reference Manual, visit:
   http://dev.mysql.com/
To buy MySQL Enterprise support, training, or other products, visit:
   https://shop.mysql.com/

List of all MySQL commands:
Note that all text commands must be first on line and end with ';'
?         (\?) Synonym for `help'.
clear     (\c) Clear the current input statement.
connect   (\r) Reconnect to the server. Optional arguments are db and host.
delimiter (\d) Set statement delimiter.
edit      (\e) Edit command with $EDITOR.
ego       (\G) Send command to mysql server, display result vertically.
exit      (\q) Exit mysql. Same as quit.
go        (\g) Send command to mysql server.
help      (\h) Display this help.
nopager   (\n) Disable pager, print to stdout.
notee     (\t) Don't write into outfile.
pager     (\P) Set PAGER [to_pager]. Print the query results via PAGER.
print     (\p) Print current command.
prompt    (\R) Change your mysql prompt.
quit      (\q) Quit mysql.
rehash    (\#) Rebuild completion hash.
source    (\.) Execute an SQL script file. Takes a file name as an argument.
status    (\s) Get status information from the server.
system    (\!) Execute a system shell command.
tee       (\T) Set outfile [to_outfile]. Append everything into given outfile.
use       (\u) Use another database. Takes database name as argument.
charset   (\C) Switch to another charset. Might be needed for processing binlog with multi-byte charsets.
warnings  (\W) Show warnings after every statement.
nowarning (\w) Don't show warnings after every statement.

For server side help, type 'help contents'

服務端命令查看版本

mysql> SELECT VERSION();
+--------------------+
| VERSION()          |
+--------------------+
| 5.5.43-MariaDB-log |
+--------------------+
1 row in set (0.06 sec)

mysql> 

簡單運算

mysql> SELECT 1+1;
+-----+
| 1+1 |
+-----+
|   2 |
+-----+
1 row in set (0.00 sec)

mysql> 

命令使用幫助

mysql> help CREATE DATABASE;
Name: 'CREATE DATABASE'
Description:
Syntax:
CREATE {DATABASE | SCHEMA} [IF NOT EXISTS] db_name
    [create_specification] ...

create_specification:
    [DEFAULT] CHARACTER SET [=] charset_name
  | [DEFAULT] COLLATE [=] collation_name

CREATE DATABASE creates a database with the given name. To use this
statement, you need the CREATE privilege for the database. CREATE
SCHEMA is a synonym for CREATE DATABASE.

URL: http://dev.mysql.com/doc/refman/5.5/en/create-database.html

mysql> 

查看mysql支持的字符集

mysql> SHOW CHARACTER SET;
+----------+-----------------------------+---------------------+--------+
| Charset  | Description                 | Default collation   | Maxlen |
+----------+-----------------------------+---------------------+--------+
| big5     | Big5 Traditional Chinese    | big5_chinese_ci     |      2 |
| dec8     | DEC West European           | dec8_swedish_ci     |      1 |
| cp850    | DOS West European           | cp850_general_ci    |      1 |
| hp8      | HP West European            | hp8_english_ci      |      1 |
| koi8r    | KOI8-R Relcom Russian       | koi8r_general_ci    |      1 |

查看所有支持的引擎

mysql> SHOW ENGINES;
+--------------------+---------+----------------------------------------------------------------------------+--------------+------+------------+
| Engine             | Support | Comment                                                                    | Transactions | XA   | Savepoints |
+--------------------+---------+----------------------------------------------------------------------------+--------------+------+------------+
| CSV                | YES     | CSV storage engine                                                         | NO           | NO   | NO         |
| MRG_MYISAM         | YES     | Collection of identical MyISAM tables                                      | NO           | NO   | NO         |
| MEMORY             | YES     | Hash based, stored in memory, useful for temporary tables                  | NO           | NO   | NO         |
| BLACKHOLE          | YES     | /dev/null storage engine (anything you write to it disappears)             | NO           | NO   | NO         |
| MyISAM             | YES     | MyISAM storage engine                                                      | NO           | NO   | NO         |
| InnoDB             | DEFAULT | Percona-XtraDB, Supports transactions, row-level locking, and foreign keys | YES          | YES  | YES        |
| ARCHIVE            | YES     | Archive storage engine                                                     | NO           | NO   | NO         |
| FEDERATED          | YES     | FederatedX pluggable storage engine                                        | YES          | NO   | YES        |
| PERFORMANCE_SCHEMA | YES     | Performance Schema                                                         | NO           | NO   | NO         |
| Aria               | YES     | Crash-safe tables with MyISAM heritage                                     | NO           | NO   | NO         |
+--------------------+---------+----------------------------------------------------------------------------+--------------+------+------------+
10 rows in set (0.00 sec)

mysql> 

創建數據庫

mysql> CREATE DATABASE IF NOT EXISTS testdb;
Query OK, 1 row affected (0.34 sec)

使用默認數據庫,創建表格

mysql> use testdb
Database changed
mysql> CREATE TABLE tbl1 (id int NOT NULL,name VARCHAR(100) NOT NULL,age tinyint);
Query OK, 0 rows affected (0.34 sec)

mysql> 

查看所有表

mysql> SHOW TABLES;
+------------------+
| Tables_in_testdb |
+------------------+
| tbl1             |
+------------------+
1 row in set (0.00 sec)

mysql> 

查看錶結構

mysql> DESC tbl1;
+-------+--------------+------+-----+---------+-------+
| Field | Type         | Null | Key | Default | Extra |
+-------+--------------+------+-----+---------+-------+
| id    | int(11)      | NO   |     | NULL    |       |
| name  | varchar(100) | NO   |     | NULL    |       |
| age   | tinyint(4)   | YES  |     | NULL    |       |
+-------+--------------+------+-----+---------+-------+
3 rows in set (0.14 sec)

mysql> 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章