部署环境:
[root@miner_k lib]# cat /etc/redhat-release
CentOS release 6.8 (Final)
参考链接:https://dev.mysql.com/doc/refman/5.7/en/data-directory-initialization-mysqld.html
常见知识点:
DBMS 数据库管理系统(Database Management System)
RDBMS 关系数据库管理系统(Relational Database Management System)
SQL语言的种类:
DML:Data Manapulate Language: 数据操作语言
INSERT, REPLACE, UPDATE, DELETE
DDL:Data Defination Lanuage: 数据定义语言
CREATE, ALTER, DROP
DCL:Data Control Language: 数据控制语言
GRANT, REVOKE
MySQL的安装
RPM包的安装
[root@miner_k ~]# yum -y install mysql-server mysql
二进制包的安装
在安装二进制的MySQL需要注意一下几点:
1. 清除rpm或者是yum安装的mysql
2. 确保配置文件已经删除,例如:/etc/my.cnf 、 /etc/mysql
3. MySQL依赖libaio库,故要确保安装该库文件
[root@miner_k ~]# wget https://downloads.mysql.com/archives/get/file/mysql-5.7.17-linux-glibc2.5-x86_64.tar.gz
shell> groupadd mysql
shell> useradd -r -g mysql -s /bin/false mysql
shell> cd /usr/local
shell> tar zxvf /path/to/mysql-VERSION-OS.tar.gz
shell> ln -s full-path-to-mysql-VERSION-OS mysql
#切换到数据库的basedir目录下
[root@miner_k mysql]# cd mysql
# 用来存放系统变量secure_file_priv的值,限制导入和导出的
[root@miner_k mysql]# mkdir mysql-files
[root@miner_k mysql]# chmod 750 mysql-files
#确保mysql用户有权限
[root@miner_k mysql]# chown -R mysql .
[root@miner_k mysql]# chgrp -R mysql .
# MySQL 5.7.6之前使用的初始化命令
[root@miner_k mysql]# bin/mysql_install_db --user=mysql
# MySQL 5.7.6开始使用的初始化命令
[root@miner_k mysql]# bin/mysqld --initialize --user=mysql
2017-07-03T05:47:41.665070Z 1 [Note] A temporary password is generated for root@localhost: Ow(0SW.ky.NN
#创建SSL 和 RSA,自动设置安全连接MySQL 5.7.6已上
[root@miner_k mysql]# bin/mysql_ssl_rsa_setup
#设置文件的所有权
[root@miner_k mysql]# chown -R root .
[root@miner_k mysql]# chown -R mysql data mysql-files
#注:如果mysql服务创建一些文件,例如SELECT ... INTO DUMPFILE.创建的目录,要保证改目录或者是文件能被mysql服务读取。权限设置和mysql-files类似。
数据库初始化:
数据库的初始化主要是生成’root’@’localhost’账户的随机密码
shell> bin/mysqld --initialize --user=mysql
shell> bin/mysqld --initialize-insecure --user=mysql
参数:
--initialize 为mysql的root用户生成随机密码
--initialize-insecure 不生成密码。如果已经提前设置好了密码。
--user=mysql 如果是使用mysql登录,可以忽略
--basedir=/opt/mysql/mysql 安装目录
--datadir=/opt/mysql/mysql/data 数据目录
--defaults-file=/opt/mysql/mysql/etc/my.cnf 调用配置文件
将datadir设置为其他位置:
#创建数据库的数据存放位置并设置权限
[root@miner_k mysql]# mkdir /var/lib/mysql
[root@miner_k mysql]# chown -R mysql:mysql /var/lib/mysql
#切换到安装路径
[root@miner_k mysql]# cd /usr/local/mysql
#初始化数据库(空密码)
[root@miner_k mysql]# bin/mysqld --initialize-insecure --user=mysql --datadir=/var/lib/mysql/
#修改配置文件,方便mysql服务加载到对应的文件
[root@miner_k local]# 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
[client]
port=3306
socket=/var/lib/mysql/mysql.sock
default-character-set=utf8
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
加载的配置文件:
mysql的配置文件:
/etc/my.cnf —> /etc/mysql/my.cnf —>
BASEDIR/my.cnf−−−>
B
A
S
E
D
I
R
/
m
y
.
c
n
f
−
−
−
>
DATADIR/my.cnf —> ~/.my.cnf
配置文件的后一个会覆盖前一个。
启动mysqld
[root@miner_k mysql]# service mysqld start
#mysql启动的两种方式:
shell> bin/mysqld_safe --user=mysql &
# Next command is optional
shell> cp support-files/mysql.server /etc/init.d/mysql.server
[root@miner_k mysql]# cp support-files/mysql.server /etc/init.d/mysqld
[root@miner_k mysql]# chkconfig --add mysqld
配置环境变量
[root@miner_k ~]# vim /etc/profile.d/mysqld.sh
export PATH=$PATH:/usr/local/mysql/bin
[root@miner_k ~]# source /etc/profile.d/mysqld.sh
源码包的安装
安装完软件之后的操作
输出man手册
安装源码包的mysql,想通过man查找mysql的帮助手册
[root@miner_k MySQL]# pwd
/usr/local/mysql
[root@miner_k mysql]# ls
bin COPYING docs include lib man README share support-files
[root@miner_k mysql]# vim /etc/man.config
MANPATH /usr/local/mysql/man
输出库文件
[root@miner_k mysql]# vim /etc/ld.so.conf.d/mysql-5.7.17-x86_64.conf
/usr/local/mysql/lib
[root@miner_k mysql]# ldconfig -v
ldconfig: /etc/ld.so.conf.d/kernel-2.6.32-696.1.1.el6.x86_64.conf:6: duplicate hwcap 1 nosegneg
/usr/local/mysql/lib:
libmysqlclient.so.20 -> libmysqlclient.so.20.3.4
输出头文件
[root@miner_k mysql]# ln -sv /usr/local/mysql/include/ /usr/include/mysql
`/usr/include/mysql' -> `/usr/local/mysql/include/'
连接mysql服务器
设置环境变量:
[root@miner_k local]# vim /etc/profile.d/mysqld.sh
export PATH=$PATH:/usr/local/mysql/bin
[root@miner_k local]# source /etc/profile.d/mysqld.sh
1.初次连接到mysql服务器
#初始化使用密码
shell> mysql -u root -p
Enter password: (enter the random root password here)
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';
#初始化使用空密码
[root@miner_k local]# mysql
mysql的帮助
mysql中的帮助文档中:
1.”[“和”]” 中的内容是可有可无的可供选择
DROP TABLE [IF EXISTS] tbl_name
2.“|”表示某一个被选择
TRIM([[BOTH | LEADING | TRAILING] [remstr] FROM] str)
3.”{“和”}”中的内容表示必须被选择
{DESCRIBE | DESC} tbl_name [col_name | wild]
4.交互模式中的命令
客户端命令:(可以用"\"+"字母"的形式表示)
mysql> ?
List of all MySQL commands:
Note that all text commands must be first on line and end with ';'
? (\?) Synonym for `help'.
clear (\c) Clear the current input statement.
connect (\r) Reconnect to the server. Optional arguments are db and host.
delimiter (\d) Set statement delimiter.
edit (\e) Edit command with $EDITOR.
.......
nowarning (\w) Don't show warnings after every statement.
resetconnection(\x) Clean session context.
服务器端的命令:(必须使用语句结束符,默认为分号)
mysql> help create
Many help items for your request exist.
To make a more specific request, please type 'help <item>',
where <item> is one of the following
topics:
CREATE DATABASE
CREATE EVENT
CREATE FUNCTION
......
SHOW CREATE USER
SPATIAL
mysql的语句
查看变量
查看服务的所有变量
mysql> show global variables;
查看服务器的某一个变量
mysql> show global variables like ‘version’;
查看服务器的状态变量
mysql> show global status;
mysql> show global status like ‘%threads%’;