MySQL工具之入门介绍


本文主要是阅读《MySQL 技术内幕》/《MariaDB 简单入门》总结而来,有需求的话可以阅读原著。

MySQL工具之入门介绍


1. 区别数据库和实例

  • 数据库
    • 物理操作系统文件或者其他形式文件类型的集合
  • 实例
    • MySQL数据库由后台线程以及一个共享内存组成
  • 关系
    • MySQL数据库实例在系统上的表现就是一个进程
    • 数据库实例才是真正用于操作系统数据库文件的

1.1 启动方式

# 在启动MySQL服务的时候,是已使用以下几种方式
# 特别提及的就是mysql_safa是以一种额外启动其他的特性的安全启动方式,如果在数据库出现问题的时候,可以提供重新启动等的特性

[root@localhost ~]# service mysqld start
Starting mysqld:                                           [  OK  ]

[root@localhost ~]# mysqld_safe &
Starting mysqld:                                           [  OK  ]

[root@localhost ~]# ps -ef | grep mysqld
root      33683      1  0 17:18 pts/3    00:00:00 /bin/sh /usr/bin/mysqld_safe --datadir=/var/lib/mysql --socket=/var/lib/mysql/mysql.sock --pid-file=/var/run/mysqld/mysqld.pid --basedir=/usr --user=mysql
mysql     33785  33683  0 17:18 pts/3    00:00:00 /usr/libexec/mysqld --basedir=/usr --datadir=/var/lib/mysql --user=mysql --log-error=/var/log/mysqld.log --pid-file=/var/run/mysqld/mysqld.pid --socket=/var/lib/mysql/mysql.sock
root      33816  33560  0 17:20 pts/3    00:00:00 grep mysqld

1.2 帮助文档

  • 使用mysql --help可以查看更多帮助以及特性支持
  • 配置读取顺序
    • MySQL 数据库会以读取到的最后一个配置文件中的参数为准
    • /etc/mysql/my.cnf ==> /etc/my.cnf ==> ~/.my.cnf
[root@localhost ~]# mysql --help | grep my.cnf
order of preference, my.cnf, $MYSQL_TCP_PORT,
/etc/mysql/my.cnf /etc/my.cnf ~/.my.cnf

1.3 配置文件

[root@localhost ~]# cat /etc/my.cnf
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0

[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid

2. MySQL 体系结构

  • MySQL 区别于其他数据库的一个最重要特性,那就是存储引擎
  • 存储引擎的好处就是能够根据具体的应用建立不用存储引擎表
  • 存储引擎是基于表的,而不是数据库

2.1 经常被问到的问题

  • 为什么 MySQL 不支持全文索引?
  • MySQL 速度低是因为它不支持事务吗?
  • 数据量大于 1000 万时 MySQL 的性能会急剧下降吗?

MySQL工具之入门介绍


2.2 各存储引擎之间的比较

  • 查看支持的存储引擎
# 查看当前使用的MySQL数据库所支持的存储引擎
mysql> show engines \G;
*************************** 1. row ***************************
      Engine: MRG_MYISAM
     Support: YES
     Comment: Collection of identical MyISAM tables
Transactions: NO
          XA: NO
  Savepoints: NO
*************************** 2. row ***************************
      Engine: CSV
     Support: YES
     Comment: CSV storage engine
Transactions: NO
          XA: NO
  Savepoints: NO
*************************** 3. row ***************************
      Engine: MyISAM
     Support: DEFAULT
     Comment: Default engine as of MySQL 3.23 with great performance
Transactions: NO
          XA: NO
  Savepoints: NO
*************************** 4. row ***************************
      Engine: InnoDB
     Support: YES
     Comment: Supports transactions, row-level locking, and foreign keys
Transactions: YES
          XA: YES
  Savepoints: YES
*************************** 5. row ***************************
      Engine: MEMORY
     Support: YES
     Comment: Hash based, stored in memory, useful for temporary tables
Transactions: NO
          XA: NO
  Savepoints: NO
5 rows in set (0.00 sec)
  • 切换存储引擎
mysql> alter table Shohin engine=MyISAM;
Query OK, 9 rows affected (0.00 sec)
Records: 9  Duplicates: 0  Warnings: 0
  • 查看 MySQL 用户
    • 可以查出有root用户,无需使用密码登录
    • 如果需要添加用户,最为暴力的方式就是在这里进行添加
mysql> use mysql;
Database changed
mysql> select host, user, password from user;
+-----------------------+------+----------+
| host                  | user | password |
+-----------------------+------+----------+
| localhost             | root |          |
| localhost.localdomain | root |          |
| 127.0.0.1             | root |          |
| localhost             |      |          |
| localhost.localdomain |      |          |
+-----------------------+------+----------+
5 rows in set (0.00 sec)

文章作者: Escape
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Escape !
  目录