DBMS数据库管理系统
- RDBMS : 关系型数据库 Oracle,MySQL,PG,MSSQL
- NoSQL : 非关系型数据库 MongoDB,Redis,ES
- NEWSQL : 可扩展/高性能数据库 TiDB,Spanner,AliSQL(RDS+DRDS),OB,PolarDB
MySQL 企业版本GA选择
- 5.6 :
5.6.34
,5.6.36
,5.6.38(2017913)
,5.6.40
- 5.7 :
5.7.18
,5.7.20(2017913)
,5.7.24
,5.7.26
- 8.0 :
8014
,8015
,8016
MySQL 5.7.28 二进制版本安装
资源不建议去MySQL官网寻找,下载太慢,可以从国内各大镜像网站寻找,推荐搜狐开源镜像
使用的是mysql-5.7.28-linux-glibc2.12-x86_64.tar.gz
将软件保存至/server/tools
mkdir -p /server/tools
cd /server/tools
解压软件
tar -xf mysql-5.7.28-linux-glibc2.12-x86_64.tar.gz
mkdir /application
mv mysql-5.7.28-linux-glibc2.12-x86_64 /application/mysql
用户的创建处理原始环境
之前搭建综合架构时,安装过Mariadb,现在卸载掉,如果之前安装过其他版本的MySQL也需要清除
由于使用的二进制版本,如果不存在mysql用户,创建一个mysql的用户
rpm -qa mariadb
yum remove mariadb-5.5.64-1.el7.x86_64 -y
useradd -s /sbin/nologin mysql
设置环境变量
vim /etc/profile
#添加环境变量 可以直接使用mysql
export PATH=/application/mysql/bin:$PATH
#重新加载该文件
source /etc/profile
#可以使用命令查看mysql的版本
mysql -V
创建数据路径并授权
添加一块新的磁盘,数据库的数据存放在该磁盘
#格式化磁盘
mkfs.xfs /dev/sdb
#创建挂载目录
mkdir /data
#查看磁盘uuid
blkid
#编辑文件 添加磁盘开机加载
vim /etc/fstab
UUID=1c167e22-11ee-4e13-8c64-251dfce36ecc /data xfs defaults 0 0
#挂载磁盘
mount -a
#查看磁盘
df -h
文件授权
chown -R mysql.mysql /application/mysql
chown -R mysql.mysql /data
初始化数据(创建系统数据)
- 5.6版本初始化命令 : /application/mysql/scripts/mysql_install_db
#5.7版本初始化命令
#--user mysql的用户
#--basedir mysql安装位置
#--datadir mysql数据存放位置
mkdir -p /data/mysql/data
chown -R mysql.mysql /data
mysqld --initialize --user=mysql --basedir=/application/mysql --datadir=/data/mysql/data
初始化完成后注意最后一行,会给root用户设置一个临时密码,密码复杂度,4种,12位,过期时间180天
[root@db01 mysql]# mysqld --initialize --user=mysql --basedir=/application/mysql --datadir=/data/mysql/data
2020-03-05T06:49:42.566714Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2020-03-05T06:49:43.438688Z 0 [Warning] InnoDB: New log files created, LSN=45790
2020-03-05T06:49:43.554928Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
2020-03-05T06:49:43.634802Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: 7eb4b9b7-5ead-11ea-b305-000c293555ca.
2020-03-05T06:49:43.635844Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.
2020-03-05T06:49:43.637399Z 1 [Note] A temporary password is generated for root@localhost: TE/Th.#SG8)w
- 如果出现报错
mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory
需要安装对应的依赖
yum install -y libaio-devel
yum -y install numactl
- 使用一下参数初始化,就不会有临时密码
mysqld --initialize-insecure --user=mysql --basedir=/application/mysql --datadir=/data/mysql/data
- 修改root用户密码
alter user root@localhost identified by '123456';
配置文件的准备
cat >/etc/my.cnf <<EOF
[mysqld]
user=mysql
basedir=/application/mysql
datadir=/data/mysql/data
socket=/tmp/mysql.sock
server_id=6
port=3306
[mysql]
socket=/tmp/mysql.sock
EOF
启动数据库
- sys-v
cp /application/mysql/support-files/mysql.server /etc/init.d/mysqld
service mysqld start
- systemd
sysv方式启动过的话,需要先提前关闭,才能以下方式登录
cat >/etc/systemd/system/mysqld.service <<EOF
[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
ExecStart=/application/mysql/bin/mysqld --defaults-file=/etc/my.cnf
LimitNOFILE = 5000
EOF
如何分析处理MySQL数据库无法启动
- 查看日志,
/data/mysql/data/主机名.err
/etc/my.cnf 路径不对等
/tmp/mysql.sock
文件修改或删除- 数据目录权限不是mysql
- 参数改错了
管理员密码的设定(root@localhost)
#输入当前密码后输入两次新密码
mysqladmin -uroot -p password
#输入当前密码后直接修改成功
mysqladmin -uroot -p password 123456
root用户密码忘记怎么办
- 关闭数据库
/etc/init.d/mysqld stop
- 启动数据库到维护模式
#--skip-grant-tables 跳过授权表 可以不使用密码登录
#--skip-networking 跳过远程登录 防止在无密码保护的情况下远程登录
mysqld_safe --skip-grant-tables --skip-networking &
- 登录并修改密码
#启动维护模式后,可以直接使用mysql命令直接登录
#登录以后直接修改密码会报错,由于跳过了授权表,需要先刷新授权表
#相关报错信息
#ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement
flush privileges;
#刷新以后可以使用命令修改,然后重启数据库
alter user root@'localhost' identified by '1';
最后一次更新于2021-12-27 13:52
0 条评论