我爱编程

第十六节、MySQL数据库服务

2017-12-09  本文已影响0人  妄语莫言
一、Mysql数据库入门及简介
二、Mysql数据库引擎详解

MySQL是我们比较常用的一种数据库软件。它有着诸多的优点,如开源的,免费的等等。其实它还有一个很好的特点,那就是有多种引擎可以供你选择。如果赛车手能根据不同的路况,地形随手更换与之最适宜的引擎,那么他们将创造奇迹。

三、服务安装

-源码安装

[root@mini src]# tar zxvf mysql-5.1.63.tar.gz 
[root@mini src]# cd mysql-5.1.63
[root@mini mysql-5.1.63]# ls
aclocal.m4      config.guess  Docs                libmysqld    mysql-test  server-tools   tests
BUILD           config.sub    extra               libmysql_r   mysys       sql            unittest
ChangeLog       configure     include             ltmain.sh    netware     sql-bench      vio
client          configure.in  install-sh          Makefile.am  plugin      sql-common     win
CMakeLists.txt  COPYING       INSTALL-SOURCE      Makefile.in  README      storage        ylwrap
cmd-line-utils  dbug          INSTALL-WIN-SOURCE  man          regex       strings        zlib
config          depcomp       libmysql            missing      scripts     support-files
[root@mini mysql-5.1.63]# ./configure --prefix=/usr/local/mysql --enable-assembler 
#预编译指定安装目录,使用汇编模式提高性能
[root@mini mysql-5.1.63]# make   #编译
[root@mini mysql-5.1.63]# make install   #安装
四、mysql 配置文件说明
[root@mini ~]# cat /etc/my.cnf 
[mysqld]     #mysql服务相关的配置
datadir=/var/lib/mysql  #数据目录,企业一般用单独目录存放如/data/mysql
socket=/var/lib/mysql/mysql.sock  #socket通信设置
user=mysql  #使用mysql用户启动数据库
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0  #是否支持快捷方式,0禁止,1支持
log-bin=mysql-bin #开启bin-log日志,二进制文件记录数据库的操作,用于数据库的还原,起备份作用
server-id=1 #mysql服务ID
character-set-server=utf8 #设置服务端字符集utf8

[mysqld_safe]   #安全启动设置
log-error=/var/log/mysqld.log  #错误日志保存目录
pid-file=/var/run/mysqld/mysqld.pid  #设置pid启动文件

[client]   #对其他客户端设置
default-character-set=utf8  #设置客户端字符集

[mysql]   #对本机设置
default-character-set=utf8  #设置本地客户端字符集

#######五、mysql数据库忘记密码重置办法

五、修改mysql的工作引擎

由于版本原因5.1使用的是默认myISAM,而且编译安装里面也没有innodb引擎

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         |
| MyISAM     | DEFAULT | Default engine as of MySQL 3.23 with great performance    | NO           | NO   | NO         |
+------------+---------+-----------------------------------------------------------+--------------+------+------------+
4 rows in set (0.00 sec)
#安装innodb
mysql> install plugin innodb soname 'ha_innodb.so';
Query OK, 0 rows affected (1.65 sec)
mysql> show engines;
+------------+---------+------------------------------------------------------------+--------------+------+------------+
| Engine     | Support | Comment                                                    | Transactions | XA   | Savepoints |
+------------+---------+------------------------------------------------------------+--------------+------+------------+
| CSV        | YES     | CSV storage engine                                         | 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         |
| MyISAM     | DEFAULT | Default engine as of MySQL 3.23 with great performance     | NO           | NO   | NO         |
| MRG_MYISAM | YES     | Collection of identical MyISAM tables                      | NO           | NO   | NO         |
+------------+---------+------------------------------------------------------------+--------------+------+------------+
5 rows in set (0.00 sec)

修改my.cnf配置文件

[mysqld]
skip-external-locking #原句是skip-locking,有报错需要修改
default-storage-engine = INNODB #新增定义默认引擎

重启mysqld服务/etc/init.d/mysqld restart

备注:源码安装错误日志

以实验机器为例错误日志路径/usr/local/mysal/var/mini.err
发生错误时查看该日志可以帮助排错
如果是yum安装机器日志一般在/var/log/mysqld.log

六、慢查询

慢查询对于跟踪有问题的查询很有用,可以分析出当前程序里那些Sql语句比较耗费资源。

mysql> show variables like "%slow%";
+---------------------+------------------------------------+
| Variable_name       | Value                              |
+---------------------+------------------------------------+
| log_slow_queries    | OFF                                |  
| slow_launch_time    | 2                                   | #超过2秒定义为慢查询
| slow_query_log      | OFF                                | #慢查询状态,关闭
| slow_query_log_file | /usr/local/mysql/var/mini-slow.log | # 慢查询日志文件
+---------------------+------------------------------------+
4 rows in set (0.01 sec)
mysql> set global slow_query_log=on;
Query OK, 0 rows affected (0.34 sec)

mysql> show variables like "%slow%";
+---------------------+------------------------------------+
| Variable_name       | Value                              |
+---------------------+------------------------------------+
| log_slow_queries    | ON                                 |
| slow_launch_time    | 2                                  |
| slow_query_log      | ON                                 |
| slow_query_log_file | /usr/local/mysql/var/mini-slow.log |
+---------------------+------------------------------------+
4 rows in set (0.00 sec)
log-slow-queries = /data/mysql/var/db-Test2-slow.log   #日志目录。
long_query_time = 0.1    #记录下查询时间查过1秒。
log-queries-not-using-indexes  #表示记录下没有使用索引的查询。
附件:实际生产mysql数据库配置文件my.cnf
[client]
port = 3306
socket = /tmp/mysql.sock
[mysqld]
user = mysql
server_id = 10
port = 3306
socket = /tmp/mysql.sock
datadir = /data/mysql/data1
old_passwords = 1
lower_case_table_names = 1
character-set-server = utf8
default-storage-engine = MYISAM
log-bin = bin.log
log-error = error.log
pid-file = mysql.pid
long_query_time = 2
slow_query_log
slow_query_log_file = slow.log
binlog_cache_size = 4M
binlog_format = mixed
max_binlog_cache_size = 16M
max_binlog_size = 1G
expire_logs_days = 30
ft_min_word_len = 4
back_log = 512
max_allowed_packet = 64M
max_connections = 4096
max_connect_errors = 100
join_buffer_size = 2M
read_buffer_size = 2M
read_rnd_buffer_size = 2M
sort_buffer_size = 2M
query_cache_size = 64M
table_open_cache = 10000
thread_cache_size = 256
max_heap_table_size = 64M
tmp_table_size = 64M
thread_stack = 192K
thread_concurrency = 24
local-infile = 0
skip-show-database
skip-name-resolve
skip-external-locking
connect_timeout = 600
interactive_timeout = 600
wait_timeout = 600
#*** MyISAM
key_buffer_size = 512M
bulk_insert_buffer_size = 64M
myisam_sort_buffer_size = 64M
myisam_max_sort_file_size = 1G
myisam_repair_threads = 1
concurrent_insert = 2
myisam_recover
#*** INNODB
innodb_buffer_pool_size = 16G
innodb_additional_mem_pool_size = 32M
innodb_data_file_path = ibdata1:1G;ibdata2:1G:autoextend
innodb_read_io_threads = 8
innodb_write_io_threads = 8
innodb_file_per_table = 1
innodb_flush_log_at_trx_commit = 2
innodb_lock_wait_timeout = 120
innodb_log_buffer_size = 8M
innodb_log_file_size = 256M
innodb_log_files_in_group = 3
innodb_max_dirty_pages_pct = 90
innodb_thread_concurrency = 16
innodb_open_files = 10000
#innodb_force_recovery = 4
#*** Replication Slave
read-only
#skip-slave-start
relay-log = relay.log
log-slave-updates
上一篇 下一篇

猜你喜欢

热点阅读