MySQL installation configuration


MySQL is the most popular relational database management system, developed by the Swedish MySQL AB company and currently owned by Oracle.

The SQL language used by MySQL is the most commonly used standardized language for accessing databases.

MySQL is generally chosen as the website database for the development of small and medium-sized websites due to its small size, fast speed, low total cost of ownership, and especially its open source characteristics.


MySQL installation

The system platform of this tutorial: CentOS release 6.6 (Final) 64-bit.

1. Install compilation tools and library files

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

2. Install cmake compiler

cmake version: cmake-3.1.1.

1. Download address: http://www.cmake.org/files/v3.1/cmake-3.1.1.tar.gz

[root@w3cschool,cc src]# wget http://www.cmake.org/files/v3.1/cmake-3.1.1.tar.gz
mysql1.png

2. Unzip and install Package

[root@w3cschool,cc src]# tar zxvf cmake-3.1.1.tar.gz

3. Enter the installation package directory

[root@w3cschool,cc src]# cd cmake-3.1.1

4. Compile and install

[root@w3cschool,cc cmake-3.1.1]# ./bootstrap
[root@w3cschool,cc cmake-3.1.1]# make && make install

3. Install MySQL

MySQL version: mysql- 5.6.15.

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

[root@w3cschool,cc src]# wget http://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.15.tar.gz
mysql2.png

2. Unzip the installation package

[root@w3cschool,cc src]# tar zxvf mysql-5.6.15.tar.gz

3. Enter the installation package directory

[root@w3cschool,cc src]# cd mysql-5.6.15

4. Compile and install

[root@w3cschool,cc mysql-5.6.15]# 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
[root@w3cschool,cc mysql-5.6.15]# make && make install

5. Check the mysql version:

[root@w3cschool,cc mysql-5.6.15]# /usr/local/webserver/mysql/bin/mysql --version
mysql3.png

At this point, the mysql installation is complete.


MySQL configuration

1. Create the user mysql used to run mysql:

[root@bogon conf]# /usr/sbin/groupadd mysql
[root@bogon conf]# /usr/sbin/useradd -g mysql mysql

2. Create the storage path of binlog and library and grant the mysql user permissions

[root@w3cschool,cc mysql]# mkdir -p /usr/local/webserver/mysql/binlog /www/data_mysql
[root@w3cschool,cc mysql]# chown mysql.mysql /usr/local/webserver/mysql/binlog/ /www/data_mysql/

2. Create my.cnf configuration file

Replace /etc/my.cnf with the following content

[root@w3cschool,cc mysql]# cat /etc/my.cnf

[client]
port = 3306
socket = /tmp/mysql.sock
[mysqld]
replicate-ignore-db = mysql
replicate-ignore-db = test
replicate-ignore-db = information_schema
user = mysql
port = 3306
socket = /tmp/mysql.sock
basedir = /usr/local/webserver/mysql
datadir = /www/data_mysql
log-error = /usr/local/webserver/mysql/mysql_error.log
pid-file = /usr/local/webserver/mysql/mysql.pid
open_files_limit = 65535
back_log = 600
max_connections = 5000
max_connect_errors = 1000
table_open_cache = 1024
external-locking = FALSE
max_allowed_packet = 32M
sort_buffer_size = 1M
join_buffer_size = 1M
thread_cache_size = 600
#thread_concurrency = 8
query_cache_size = 128M
query_cache_limit = 2M
query_cache_min_res_unit = 2k
default-storage-engine = MyISAM
default-tmp-storage-engine=MYISAM
thread_stack = 192K
transaction_isolation = READ-COMMITTED
tmp_table_size = 128M
max_heap_table_size = 128M
log-slave-updates
log-bin = /usr/local/webserver/mysql/binlog/binlog
binlog-do-db=oa_fb
binlog-ignore-db=mysql
binlog_cache_size = 4M
binlog_format = MIXED
max_binlog_cache_size = 8M
max_binlog_size = 1G
relay-log-index = /usr/local/webserver/mysql/relaylog/relaylog
relay-log-info-file = /usr/local/webserver/mysql/relaylog/relaylog
relay-log = /usr/local/webserver/mysql/relaylog/relaylog
expire_logs_days = 10
key_buffer_size = 256M
read_buffer_size = 1M
read_rnd_buffer_size = 16M
bulk_insert_buffer_size = 64M
myisam_sort_buffer_size = 128M
myisam_max_sort_file_size = 10G
myisam_repair_threads = 1
myisam_recover
interactive_timeout = 120
wait_timeout = 120
skip-name-resolve
#master-connect-retry = 10
slave-skip-errors = 1032,1062,126,1114,1146,1048,1396
#master-host = 192.168.1.2
#master-user = username
#master-password = password
#master-port = 3306
server-id = 1
loose-innodb-trx=0 
loose-innodb-locks=0 
loose-innodb-lock-waits=0 
loose-innodb-cmp=0 
loose-innodb-cmp-per-index=0
loose-innodb-cmp-per-index-reset=0
loose-innodb-cmp-reset=0 
loose-innodb-cmpmem=0 
loose-innodb-cmpmem-reset=0 
loose-innodb-buffer-page=0 
loose-innodb-buffer-page-lru=0 
loose-innodb-buffer-pool-stats=0 
loose-innodb-metrics=0 
loose-innodb-ft-default-stopword=0 
loose-innodb-ft-inserted=0 
loose-innodb-ft-deleted=0 
loose-innodb-ft-being-deleted=0 
loose-innodb-ft-config=0 
loose-innodb-ft-index-cache=0 
loose-innodb-ft-index-table=0 
loose-innodb-sys-tables=0 
loose-innodb-sys-tablestats=0 
loose-innodb-sys-indexes=0 
loose-innodb-sys-columns=0 
loose-innodb-sys-fields=0 
loose-innodb-sys-foreign=0 
loose-innodb-sys-foreign-cols=0

slow_query_log_file=/usr/local/webserver/mysql/mysql_slow.log
long_query_time = 1
[mysqldump]
quick
max_allowed_packet = 32M

3. Initialize the database

[root@w3cschool,cc mysql]#/usr/local/webserver/mysql/scripts/mysql_install_db --defaults-file=/etc/my.cnf  --user=mysql

is displayed as follows Information:

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).
OK

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).
OK
...

4. Create a boot script

[root@w3cschool,cc mysql]# cd /usr/local/webserver/mysql/
[root@w3cschool,cc mysql]# cp support-files/mysql.server /etc/rc.d/init.d/mysqld 
[root@w3cschool,cc mysql]# chkconfig --add mysqld 
[root@w3cschool,cc mysql]# chkconfig --level 35 mysqld on

4. Start the mysql server

[root@w3cschool,cc mysql]# service mysqld start
nginx4.png

5. Connect to MySQL

[root@w3cschool,cc mysql]# /usr/local/webserver/mysql/bin/mysql -u root -p
mysql5.png

Modify MySQL user password

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

Or enter the mysql command line

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

Create a new user and authorize:

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

Other commands

  • Start: service mysqld start

  • Stop: service mysqld stop

  • Restart: service mysqld restart

  • Reload configuration: service mysqld reload