1.下载二进制安装包
mysql-5.6.39-linux-glibc2.12-x86_64.tar.gz
tar -xvf mysql-5.6.39-linux-glibc2.12-x86_64.tar.gz
2.拷贝安装包和配置文件(如果没有特殊情况,将安装包解压放置在该目录)
cp -rf mysql /usr/local/mysql
cp -rf my5.6.cnf /etc/my.cnf
3.创建mysql用户
useradd mysql
4.添加数据目录
mkdir -p /home/mysql3306/mysql3306
mkdir -p /home/mysql3306/logs
5.修改目录权限
chown mysql:mysql -R /home/mysql3306
6.修改配置文件
socket = /tmp/mysql.sock(socket文件存放位置)
datadir = /home/mysql3306/mysql3306(数据文件存放目录)
server-id = 12013306(设置serverid 命名规则:ip后两位+端口号)
port = 3306(启动端口)
innodb_buffer_pool_size = 1024M(innodb buffer pool大小)
*如果是核心节点单实例 配置成系统总内存的75%左右,如果不是核心节点则按照具体业务压力来设置
7.初始化数据库(确认2个OK)
-
# /usr/local/mysql/scripts/mysql_install_db --basedir=/usr/local/mysql --defaults-file=/etc/my.cnf --datadir=/home/mysql3306/mysql3306 --user=mysql
-
Installing MySQL system tables...2018-03-10 19:33:26 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
-
2018-03-10 19:33:26 0 [Note] Ignoring --secure-file-priv value as server is running with --bootstrap.
-
2018-03-10 19:33:26 0 [Note] /usr/local/mysql/bin/mysqld (mysqld 5.6.39-log) starting as process 2041 ...
-
OK
-
-
Filling help tables...2018-03-10 19:33:37 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
-
2018-03-10 19:33:37 0 [Note] Ignoring --secure-file-priv value as server is running with --bootstrap.
-
2018-03-10 19:33:37 0 [Note] /usr/local/mysql/bin/mysqld (mysqld 5.6.39-log) starting as process 2063 ...
-
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 MySQL root USER !
-
To do so, start the server, then issue the following commands:
-
-
/usr/local/mysql/bin/mysqladmin -u root password 'new-password'
-
/usr/local/mysql/bin/mysqladmin -u root -h mysql5.6 password 'new-password'
-
-
Alternatively you can run:
-
-
/usr/local/mysql/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 manual for more instructions.
-
-
You can start the MySQL daemon with:
-
-
cd . ; /usr/local/mysql/bin/mysqld_safe &
-
-
You can test the MySQL daemon with mysql-test-run.pl
-
-
cd mysql-test ; perl mysql-test-run.pl
-
-
Please report any problems at http://bugs.mysql.com/
-
-
The latest information about MySQL is available on the web at
-
-
http://www.mysql.com
-
-
Support MySQL by buying support/licenses at http://shop.mysql.com
-
-
New default config file was created as /usr/local/mysql/my.cnf and
-
will be used by default by the server when you start it.
-
You may edit this file to change server settings
-
-
WARNING: Default config file /etc/my.cnf exists on the system
-
This file will be read by default by the MySQL server
-
If you do not want to use this, either remove it, or use the
-
--defaults-file argument to mysqld_safe when starting the server
数据目录下文件
-
[root@mysql5 mysql3306]# ll
-
total 1574132
-
-rw-rw----. 1 mysql mysql 1073741824 Mar 10 19:33 ibdata1
-
-rw-rw----. 1 mysql mysql 268435456 Mar 10 19:33 ib_logfile0
-
-rw-rw----. 1 mysql mysql 268435456 Mar 10 19:33 ib_logfile1
-
drwx------. 2 mysql mysql 4096 Mar 10 19:33 mysql
-
-rw-rw----. 1 mysql mysql 65405 Mar 10 19:33 mysql-bin.000001
-
-rw-rw----. 1 mysql mysql 1206067 Mar 10 19:33 mysql-bin.000002
-
-rw-rw----. 1 mysql mysql 38 Mar 10 19:33 mysql-bin.index
-
drwx------. 2 mysql mysql 4096 Mar 10 19:33 performance_schema
-
drwx------. 2 mysql mysql 4096 Mar 10 19:33 test
8.启动mysql5.6
-
# /usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my.cnf --user=mysql &
-
[1] 2108
-
[root@mysql5 mysql3306]# 180310 19:40:55 mysqld_safe Logging to '/home/mysql3306/logs/mysql-error.log'.
-
180310 19:40:55 mysqld_safe Starting mysqld daemon with databases from /home/mysql3306/mysql3306
-
# ps -ef |grep mysql
-
avahi 1312 1 0 18:36 ? 00:00:00 avahi-daemon: running [mysql5.local]
-
root 2108 1821 0 19:40 pts/0 00:00:00 /bin/sh /usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my.cnf --user=mysql
-
mysql 2979 2108 7 19:40 pts/0 00:00:06 /usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql --datadir=/home/mysql3306/mysql3306 --plugin-dir=/usr/local/mysql/lib/plugin --user=mysql --log-error=/home/mysql3306/logs/mysql-error.log --open-files-limit=65535 --pid-file=/home/mysql3306/mysql.pid --socket=/tmp/mysql.sock --port=3306
-
root 3004 1821 0 19:42 pts/0 00:00:00 grep mysql
9.进入mysql5.6
-
# /usr/local/mysql/bin/mysql -S /tmp/mysql.sock
-
Welcome to the MySQL monitor. Commands end with ; or \g.
-
Your MySQL connection id is 1
-
Server version: 5.6.39-log MySQL Community Server (GPL)
-
-
Copyright (c) 2000, 2018, 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> show databases;
-
+--------------------+
-
| Database |
-
+--------------------+
-
| information_schema |
-
| mysql |
-
| performance_schema |
-
| test |
-
+--------------------+
-
4 rows in set (0.05 sec)
10.权限调整
-
mysql> select user,host,password from mysql.user;
-
ERROR 2006 (HY000): MySQL server has gone away
-
No connection. Trying to reconnect...
-
Connection id: 2
-
Current database: *** NONE ***
-
-
+------+-----------+----------+
-
| user | host | password |
-
+------+-----------+----------+
-
| root | localhost | |
-
| root | mysql5.6 | |
-
| root | 127.0.0.1 | |
-
| root | ::1 | |
-
| | localhost | |
-
| | mysql5.6 | |
-
+------+-----------+----------+
-
6 rows in set (0.08 sec)
删除空用户
mysql> delete from mysql.user where user='';
Query OK, 2 rows affected (0.06 sec)
mysql> delete from mysql.user where host in ('::1','tomato02');
Query OK, 1 row affected (0.02 sec)
使生效
mysql> flush privileges;
Query OK, 0 rows affected (0.02 sec)
赋权限
mysql> grant all on *.* to root@'localhost' identified by 'root';
Query OK, 0 rows affected (0.04 sec)
mysql> grant all on *.* to root@'%' identified by 'root';
Query OK, 0 rows affected (0.01 sec)
-all 所有权限
-*.* 所有权限的(所有库的所有表)
-root@'localhost' 用户@网段 localhost通过sock访问数据库,通过本地方式访问数据库
-root@'%' 通过TCP/IP协议来访问数据库,TCP/IP可以远程访问
-identified by 'root'; 密码root
使用密码登录数据库
# /usr/local/mysql/bin/mysql -S /tmp/mysql.sock -p
Enter password:
查看帮助
-
# /usr/local/mysql/bin/mysql --help
-
/usr/local/mysql/bin/mysql Ver 14.14 Distrib 5.6.39, for linux-glibc2.12 (x86_64) using EditLine wrapper
-
Copyright (c) 2000, 2018, 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.
-
-
Usage: /usr/local/mysql/bin/mysql [OPTIONS] [database]
-
-?, --help Display this help and exit.
-
-I, --help Synonym for -?
-
--auto-rehash Enable automatic rehashing. One doesn't need to use
-
'rehash' to get table and field completion, but startup
-
and reconnecting may take a longer time. Disable with
-
--disable-auto-rehash.
-
(Defaults to on; use --skip-auto-rehash to disable.)
-
-A, --no-auto-rehash
-
No automatic rehashing. One has to use 'rehash' to get
-
table and field completion. This gives a quicker start of
-
mysql and disables rehashing on reconnect.
-
--auto-vertical-output
-
Automatically switch to vertical output mode if the
-
result is wider than the terminal width.
-
-B, --batch Don't use history file. Disable interactive behavior.
-
(Enables --silent.)
-
--bind-address=name IP address to bind to.
-
-b, --binary-as-hex Print binary data as hex
-
--character-sets-dir=name
-
Directory for character set files.
-
--column-type-info Display column type information.
-
-c, --comments Preserve comments. Send comments to the server. The
-
default is --skip-comments (discard comments), enable
-
with --comments.
-
-C, --compress Use compression in server/client protocol.
-
-#, --debug[=#] This is a non-debug version. Catch this and exit.
-
--debug-check Check memory and open file usage at exit.
-
-T, --debug-info Print some debug info at exit.
-
-D, --database=name Database to use.
-
--default-character-set=name
-
Set the default character set.
-
--delimiter=name Delimiter to be used.
-
--enable-cleartext-plugin
-
Enable/disable the clear text authentication plugin.
-
-e, --execute=name Execute command and quit. (Disables --force and history
-
file.)
-
-E, --vertical Print the output of a query (rows) vertically.
-
-f, --force Continue even if we get an SQL error.
-
-G, --named-commands
-
Enable named commands. Named commands mean this program's
-
internal commands; see mysql> help . When enabled, the
-
named commands can be used from any line of the query,
-
otherwise only from the first line, before an enter.
-
Disable with --disable-named-commands. This option is
-
disabled by default.
-
-i, --ignore-spaces Ignore space after function names.
-
--init-command=name SQL Command to execute when connecting to MySQL server.
-
Will automatically be re-executed when reconnecting.
-
--local-infile Enable/disable LOAD DATA LOCAL INFILE.
-
-b, --no-beep Turn off beep on error.
-
-h, --host=name Connect to host.
-
-H, --html Produce HTML output.
-
-X, --xml Produce XML output.
-
--line-numbers Write line numbers for errors.
-
(Defaults to on; use --skip-line-numbers to disable.)
-
-L, --skip-line-numbers
-
Don't write line number for errors.
-
-n, --unbuffered Flush buffer after each query.
-
--column-names Write column names in results.
-
(Defaults to on; use --skip-column-names to disable.)
-
-N, --skip-column-names
-
Don't write column names in results.
-
--sigint-ignore Ignore SIGINT (CTRL-C).
-
-o, --one-database Ignore statements except those that occur while the
-
default database is the one named at the command line.
-
--pager[=name] Pager to use to display results. If you don't supply an
-
option, the default pager is taken from your ENV variable
-
PAGER. Valid pagers are less, more, cat [> filename],
-
etc. See interactive help (\h) also. This option does not
-
work in batch mode. Disable with --disable-pager. This
-
option is disabled by default.
-
-p, --password[=name]
-
Password to use when connecting to server. If password is
-
not given it's asked from the tty.
-
-P, --port=# Port number to use for connection or 0 for default to, in
-
order of preference, my.cnf, $MYSQL_TCP_PORT,
-
/etc/services, built-in default (3306).
-
--prompt=name Set the mysql prompt to this value.
-
--protocol=name The protocol to use for connection (tcp, socket, pipe,
-
memory).
-
-q, --quick Don't cache result, print it row by row. This may slow
-
down the server if the output is suspended. Doesn't use
-
history file.
-
-r, --raw Write fields without conversion. Used with --batch.
-
--reconnect Reconnect if the connection is lost. Disable with
-
--disable-reconnect. This option is enabled by default.
-
(Defaults to on; use --skip-reconnect to disable.)
-
-s, --silent Be more silent. Print results with a tab as separator,
-
each row on new line.
-
-S, --socket=name The socket file to use for connection.
-
--ssl Enable SSL for connection (automatically enabled with
-
other flags).
-
--ssl-ca=name CA file in PEM format (check OpenSSL docs, implies
-
--ssl).
-
--ssl-capath=name CA directory (check OpenSSL docs, implies --ssl).
-
--ssl-cert=name X509 cert in PEM format (implies --ssl).
-
--ssl-cipher=name SSL cipher to use (implies --ssl).
-
--ssl-key=name X509 key in PEM format (implies --ssl).
-
--ssl-crl=name Certificate revocation list (implies --ssl).
-
--ssl-crlpath=name Certificate revocation list path (implies --ssl).
-
--ssl-verify-server-cert
-
Verify server's "Common Name" in its cert against
-
hostname used when connecting. This option is disabled by
-
default.
-
--ssl-mode=name SSL connection mode.
-
-t, --table Output in table format.
-
--tee=name Append everything into outfile. See interactive help (\h)
-
also. Does not work in batch mode. Disable with
-
--disable-tee. This option is disabled by default.
-
-u, --user=name User for login if not current user.
-
-U, --safe-updates Only allow UPDATE and DELETE that uses keys.
-
-U, --i-am-a-dummy Synonym for option --safe-updates, -U.
-
-v, --verbose Write more. (-v -v -v gives the table output format).
-
-V, --version Output version information and exit.
-
-w, --wait Wait and retry if connection is down.
-
--connect-timeout=# Number of seconds before connection timeout.
-
--max-allowed-packet=#
-
The maximum packet length to send to or receive from
-
server.
-
--net-buffer-length=#
-
The buffer size for TCP/IP and socket communication.
-
--select-limit=# Automatic limit for SELECT when using --safe-updates.
-
--max-join-size=# Automatic limit for rows in a join when using
-
--safe-updates.
-
--secure-auth Refuse client connecting to server if it uses old
-
(pre-4.1.1) protocol.
-
(Defaults to on; use --skip-secure-auth to disable.)
-
--server-arg=name Send embedded server this as a parameter.
-
--show-warnings Show warnings after every statement.
-
--plugin-dir=name Directory for client-side plugins.
-
--default-auth=name Default authentication client-side plugin to use.
-
--histignore=name A colon-separated list of patterns to keep statements
-
from getting logged into mysql history.
-
--binary-mode By default, ASCII '\0' is disallowed and '\r\n' is
-
translated to '\n'. This switch turns off both features,
-
and also turns off parsing of all clientcommands except
-
\C and DELIMITER, in non-interactive mode (for input
-
piped to mysql or loaded using the 'source' command).
-
This is necessary when processing output from mysqlbinlog
-
that may contain blobs.
-
--connect-expired-password
-
Notify the server that this client is prepared to handle
-
expired password sandbox mode.
-
-
Default options are read from the following files in the given order:
-
/etc/my.cnf /etc/mysql/my.cnf /usr/local/mysql/etc/my.cnf ~/.my.cnf
-
The following groups are read: mysql client
-
The following options may be given as the first argument:
-
--print-defaults Print the program argument list and exit.
-
--no-defaults Don't read default options from any option file,
-
except for login file.
-
--defaults-file=# Only read default options from the given file #.
-
--defaults-extra-file=# Read this file after the global files are read.
-
--defaults-group-suffix=#
-
Also read groups with concat(group, suffix)
-
--login-path=# Read this path from the login file.
-
-
Variables (--variable-name=value)
-
and boolean options {FALSE|TRUE} Value (after reading options)
-
--------------------------------- ----------------------------------------
-
auto-rehash TRUE
-
auto-vertical-output FALSE
-
bind-address (No default value)
-
binary-as-hex FALSE
-
character-sets-dir (No default value)
-
column-type-info FALSE
-
comments FALSE
-
compress FALSE
-
debug-check FALSE
-
debug-info FALSE
-
database (No default value)
-
default-character-set utf8
-
delimiter ;
-
enable-cleartext-plugin FALSE
-
vertical FALSE
-
force FALSE
-
named-commands FALSE
-
ignore-spaces FALSE
-
init-command (No default value)
-
local-infile FALSE
-
no-beep FALSE
-
host (No default value)
-
html FALSE
-
xml FALSE
-
line-numbers TRUE
-
unbuffered FALSE
-
column-names TRUE
-
sigint-ignore FALSE
-
port 3306
-
prompt mysql>
-
quick FALSE
-
raw FALSE
-
reconnect TRUE
-
socket /tmp/mysql.sock
-
ssl FALSE
-
ssl-ca (No default value)
-
ssl-capath (No default value)
-
ssl-cert (No default value)
-
ssl-cipher (No default value)
-
ssl-key (No default value)
-
ssl-crl (No default value)
-
ssl-crlpath (No default value)
-
ssl-verify-server-cert FALSE
-
table FALSE
-
user (No default value)
-
safe-updates FALSE
-
i-am-a-dummy FALSE
-
connect-timeout 0
-
max-allowed-packet 16777216
-
net-buffer-length 16384
-
select-limit 1000
-
max-join-size 1000000
-
secure-auth FALSE
-
show-warnings FALSE
-
plugin-dir (No default value)
-
default-auth (No default value)
-
histignore (No default value)
-
binary-mode FALSE
-
connect-expired-password FALSE
11.关闭mysql
-
# /usr/local/mysql/bin/mysqladmin -uroot -proot -S /tmp/mysql.sock shutdown
-
Warning: Using a password on the command line interface can be insecure.
-
180310 20:36:38 mysqld_safe mysqld from pid file /home/mysql3306/mysql.pid ended
-
[1]+ Done /usr/local/mysql/bin/mysqld_safe --defaults-file=/etc/my.cnf --user=mysql
强行关闭mysql
pkill mysql
12.mysql错误日志
/home/mysql3306/logs/mysql-error.log