MySQL 安装配置

MySQL 是最流行的关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle公司。

MySQL所使用的SQL语言是用于访问数据库的最常用标准化语言。

MySQL由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择MySQL作为网站数据库。


MySQL 安装

本教程的系统平台:CentOS release 6.6 (Final) 64位。

一、安装编译工具及库文件

  1. yum -y install gcc gcc-c++ make autoconf libtool-ltdl-devel gd-devel freetype-devel libxml2-devel libjpeg-devel libpng-devel openssl-devel curl-devel bison patch unzip libmcrypt-devel libmhash-devel ncurses-devel sudo bzip2 flex libaio-devel

二、 安装cmake 编译器

cmake 版本:cmake-3.1.1。

1、下载地址:http://www.cmake.org/files/v3.1/cmake-3.1.1.tar.gz

  1. $ wget http://www.cmake.org/files/v3.1/cmake-3.1.1.tar.gz

  1. $ tar zxvf cmake-3.1.1.tar.gz

3、进入安装包目录

  1. $ cd cmake-3.1.1

4、编译安装

  1. $ ./bootstrap
  2. $ make && make install

三、安装 MySQL

MySQL版本:mysql-5.6.15。

1、下载地址: http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.15.tar.gz

  1. $ wget http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.15.tar.gz

  1. $ tar zxvf mysql-5.6.15.tar.gz

3、进入安装包目录

  1. $ cd mysql-5.6.15

4、编译安装

  1. $ cmake -DCMAKE_INSTALL_PREFIX=/usr/local/webserver/mysql/ -DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS=all -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DWITH_INNODB_MEMCACHED=1 -DWITH_DEBUG=OFF -DWITH_ZLIB=bundled -DENABLED_LOCAL_INFILE=1 -DENABLED_PROFILING=ON -DMYSQL_MAINTAINER_MODE=OFF -DMYSQL_DATADIR=/usr/local/webserver/mysql/data -DMYSQL_TCP_PORT=3306
  2. $ make && make install

5、查看mysql版本:

  1. $ /usr/local/webserver/mysql/bin/mysql --version


MySQL 配置

1、创建mysql运行使用的用户mysql:

  1. $ /usr/sbin/groupadd mysql
  2. $ /usr/sbin/useradd -g mysql mysql

2、创建binlog和库的存储路径并赋予mysql用户权限

  1. $ mkdir -p /usr/local/webserver/mysql/binlog /www/data_mysql
  2. $ chown mysql.mysql /usr/local/webserver/mysql/binlog/ /www/data_mysql/

3、创建my.cnf配置文件

将/etc/my.cnf替换为下面内容

  1. $ cat /etc/my.cnf
  2. [client]
  3. port = 3306
  4. socket = /tmp/mysql.sock
  5. [mysqld]
  6. replicate-ignore-db = mysql
  7. replicate-ignore-db = test
  8. replicate-ignore-db = information_schema
  9. user = mysql
  10. port = 3306
  11. socket = /tmp/mysql.sock
  12. basedir = /usr/local/webserver/mysql
  13. datadir = /www/data_mysql
  14. log-error = /usr/local/webserver/mysql/mysql_error.log
  15. pid-file = /usr/local/webserver/mysql/mysql.pid
  16. open_files_limit = 65535
  17. back_log = 600
  18. max_connections = 5000
  19. max_connect_errors = 1000
  20. table_open_cache = 1024
  21. external-locking = FALSE
  22. max_allowed_packet = 32M
  23. sort_buffer_size = 1M
  24. join_buffer_size = 1M
  25. thread_cache_size = 600
  26. #thread_concurrency = 8
  27. query_cache_size = 128M
  28. query_cache_limit = 2M
  29. query_cache_min_res_unit = 2k
  30. default-storage-engine = MyISAM
  31. default-tmp-storage-engine=MYISAM
  32. thread_stack = 192K
  33. transaction_isolation = READ-COMMITTED
  34. tmp_table_size = 128M
  35. max_heap_table_size = 128M
  36. log-slave-updates
  37. log-bin = /usr/local/webserver/mysql/binlog/binlog
  38. binlog-do-db=oa_fb
  39. binlog-ignore-db=mysql
  40. binlog_cache_size = 4M
  41. binlog_format = MIXED
  42. max_binlog_cache_size = 8M
  43. max_binlog_size = 1G
  44. relay-log-index = /usr/local/webserver/mysql/relaylog/relaylog
  45. relay-log-info-file = /usr/local/webserver/mysql/relaylog/relaylog
  46. relay-log = /usr/local/webserver/mysql/relaylog/relaylog
  47. expire_logs_days = 10
  48. key_buffer_size = 256M
  49. read_buffer_size = 1M
  50. read_rnd_buffer_size = 16M
  51. bulk_insert_buffer_size = 64M
  52. myisam_sort_buffer_size = 128M
  53. myisam_max_sort_file_size = 10G
  54. myisam_repair_threads = 1
  55. myisam_recover
  56. interactive_timeout = 120
  57. wait_timeout = 120
  58. skip-name-resolve
  59. #master-connect-retry = 10
  60. slave-skip-errors = 1032,1062,126,1114,1146,1048,1396
  61. #master-host = 192.168.1.2
  62. #master-user = username
  63. #master-password = password
  64. #master-port = 3306
  65. server-id = 1
  66. loose-innodb-trx=0
  67. loose-innodb-locks=0
  68. loose-innodb-lock-waits=0
  69. loose-innodb-cmp=0
  70. loose-innodb-cmp-per-index=0
  71. loose-innodb-cmp-per-index-reset=0
  72. loose-innodb-cmp-reset=0
  73. loose-innodb-cmpmem=0
  74. loose-innodb-cmpmem-reset=0
  75. loose-innodb-buffer-page=0
  76. loose-innodb-buffer-page-lru=0
  77. loose-innodb-buffer-pool-stats=0
  78. loose-innodb-metrics=0
  79. loose-innodb-ft-default-stopword=0
  80. loose-innodb-ft-inserted=0
  81. loose-innodb-ft-deleted=0
  82. loose-innodb-ft-being-deleted=0
  83. loose-innodb-ft-config=0
  84. loose-innodb-ft-index-cache=0
  85. loose-innodb-ft-index-table=0
  86. loose-innodb-sys-tables=0
  87. loose-innodb-sys-tablestats=0
  88. loose-innodb-sys-indexes=0
  89. loose-innodb-sys-columns=0
  90. loose-innodb-sys-fields=0
  91. loose-innodb-sys-foreign=0
  92. loose-innodb-sys-foreign-cols=0
  93. slow_query_log_file=/usr/local/webserver/mysql/mysql_slow.log
  94. long_query_time = 1
  95. [mysqldump]
  96. quick
  97. max_allowed_packet = 32M

4、初始化数据库

  1. $/usr/local/webserver/mysql/scripts/mysql_install_db --defaults-file=/etc/my.cnf --user=mysql

显示如下信息:

  1. Installing MySQL system tables...2015-01-26 20:18:51 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
  2. OK
  3. Filling help tables...2015-01-26 20:18:57 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
  4. OK
  5. ...

5、创建开机启动脚本

  1. $ cd /usr/local/webserver/mysql/
  2. $ cp support-files/mysql.server /etc/rc.d/init.d/mysqld
  3. $ chkconfig --add mysqld
  4. $ chkconfig --level 35 mysqld on

6、启动mysql服务器

  1. $ service mysqld start

  1. $ /usr/local/webserver/mysql/bin/mysql -u root -p

  1. mysqladmin -u用户名 -p旧密码 password 新密码

或进入mysql命令行

  1. SET PASSWORD FOR '用户名'@'主机' = PASSWORD(‘密码');

创建新用户并授权:

  1. grant all privileges on *.* to 用户名@'%' identified by '密码' with grant option;

其他命令

  • 启动:service mysqld start
  • 停止:service mysqld stop
  • 重启:service mysqld restart
  • 重载配置:service mysqld reload