1、MySQL介绍和安装、初始化设置密码

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

你可能感兴趣的:(1、MySQL介绍和安装、初始化设置密码)