1 数据库管理系统
RDBMS:关系型数据库管理系统
比较适合安全要求较高、数据关系较复杂的数据
常见的有MySQL、Oracle、MsSQL(SQL Server)、Postgresql
NoSQL(Not Only SQL):非关系型数据库管理系统
适合于高性能存取数据,一般是配合RDBMS来使用
针对大数据处理,分布式架构更擅长
键-值(key-value): Redis、memcached
文档(document): Mongodb
2 二进制安装MySQL社区版
2.1 下载官网安装包
下载5.7.20版本的的压缩包,解压缩到/app
目录下,重命名文件夹为mysql
#下载压缩包
wget -P /usr/local/ https://downloads.mysql.com/archives/get/p/23/file/mysql-5.7.20-linux-glibc2.12-x86_64.tar.gz
#解压缩
tar -xvf mysql-5.7.20-linux-glibc2.12-x86_64.tar.gz -C /usr/local/
#重命名文件夹
mv /usr/local/mysql-5.7.20-linux-glibc2.12-x86_64 /usr/local/mysql
2.2 修改环境变量
mysql的bin目录下为可执行命令,将其添加到环境变量中
#编辑/etc/profile文件
vim /etc/profile
#在文件末尾添加如下信息
export PATH=/usr/local/mysql/bin/:$PATH
#重新加载文件
source /etc/profile
2.3 添加mysql用户和组
useradd mysql -s /sbin/nologin
2.4 创建数据库目录并修改权限
mkdir -p /data/mysql/
mkdir -p /data/binlog/
mkdir -p /var/log/mysql
chown -R mysql:mysql /data/mysql/
chown -R mysql:mysql /data/binlog/
chown -R mysql:mysql /usr/local/mysql/
chown -R mysql:mysql /var/log/mysql
2.5 初始化数据库
初始化前,请确保安装了libaio-devel
软件包,否则会初始化失败
方法一:安全模式
5.7版本新增,加入了全新的安全机制:
1.初始化完成后,会生成临时密码(显示到屏幕上,并且会往日志种记录一份)
2.密码复杂度:长度超过12位,字符混乱组合
3.密码过期时间180天
mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql
方法二:非安全模式
初始的root密码为空
mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql
参数解释
--initialize
创建默认的数据库,为超级用户创建随机密码
--initialize-insecure
以非安全模式创建默认数据库,超级用户密码为空
--user
以XX用户的身份创建
--basedir
mysql程序所在文件夹
--datadir
数据库所在文件夹
2.6 写配置文件
配置文件为/etc/my.cnf
[mysqld]
user=mysql
basedir=/usr/local/mysql
datadir=/data/mysql
server_id=1
bind-address=0.0.0.0
port=3306
socket=/tmp/mysql.sock
log_error=/var/log/mysql/mysql.log
log_bin=/data/binlog/mysql-bin
binlog_format=row
gtid-mode=on
enforce-gtid-consistency=true
expire_logs_days=15
max_binlog_size=134217728
[mysql]
socket=/tmp/mysql.sock
prompt=3306 [\\d]>
2.7 配置启动脚本
/app/mysql/support-files/mysql.server
是数据库启动脚本,可以直接添加start参数执行脚本启动
[root@node1 ~]$ /app/mysql/support-files/mysql.server start
Starting MySQL.. SUCCESS!
2.8 使用systemd管理mysql
创建mysqld.service
文件,放到/etc/systemd/system/
目录下
[root@node1 ~]$ vim /etc/systemd/system/mysqld.service
[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=https://dev.mysql.com/doc/refman/5.7/en/using-systemd.html
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf
LimitNOFILE=5000
3 安装后的简单管理
3.1 设置密码
#Usage: mysqladmin [OPTIONS] command command....
#下面的命令password是command,-p后面接密码,由于使用insecure方式初始化数据库,所以密码为空
[root@node1 ~]$ mysqladmin -u root -p password
Enter password:
New password:
Confirm new password:
3.2 登录数据库
[root@node1 ~]$ mysql -u root -p
Enter password:
3.3 查看用户基本信息
3306 [(none)]> select user,host, authentication_string from mysql.user;
+---------------+-----------+-------------------------------------------+
| user | host | authentication_string |
+---------------+-----------+-------------------------------------------+
| root | localhost | *23AE809DDACAF96AF0FD78ED04B6A265E05AA257 |
| mysql.session | localhost | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |
| mysql.sys | localhost | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE |
+---------------+-----------+-------------------------------------------+
3 rows in set (0.00 sec)
3.4 导入数据库
mysql -u用户名 -p密码 < 数据库名.sql
mysql -uroot -p < abc.sql