I.MySQL的安装和配置
1.准备环境
CentOs7 mysql-5.7.28-linux-glibc2.12-x86_64.tar
2.配置环境
(1)在root权限下,先清理历史环境:
[root@localhost ~]# rpm -qa |grep mariadb
mariadb-libs-5.5.64-1.el7.x86_64
[root@localhost ~]# yum remove mariadb-libs
等它进行清理,完成后会弹出【complete】显示:
(2)创建用户和组
[root@localhost ~]# useradd mysql -s /sbin/nologin
[root@localhost ~]# id mysql
uid=1001(mysql) gid=1001(mysql) groups=1001(mysql)
(3)创建相关目录
[root@localhost ~]# mkdir -p /app/database/ #创建软件目录
[root@localhost ~]# mkdir -p /data/3306/ #创建数据目录
[root@localhost ~]# mkdir -p /binlog/3306/ #创建日志目录
(4)设置权限
[root@localhost ~]# chown -R mysql.mysql /app/ /data/ /binlog/
3.上传文件
(1)用xftp进行传输文件;
传输成功后,回到命令行,查看下路径目录:
[root@localhost database]# cd /app/database/
[root@localhost database]# ll
total 707688
-rw-r--r--. 1 root root 724672294 Mar 16 13:13 mysql-5.7.28-linux-glibc2.12-x86_64.tar.gz
(2)进行解压:
[root@localhost database]# tar xf mysql-5.7.28-linux-glibc2.12-x86_64.tar.gz
(3)解压后,因为文件名很长,可以做一个软链接:
【用法是:ln -s 源文件 目标文件。源:实际存放文件的位置
当我们需要在不同的目录,用到相同的文件时,我们不需要在每一个需要的目录下都放一个必须相同的文件,我们只要在某个固定的目录,放上该文件,然后在其它的 目录下用ln命令链接(link)它就可以,不必重复的占用磁盘空间。-s 是代号(symbolic)的意思。
注意:①ln命令会保持每一处链接文件的同步性,也就是说,不论你改动了哪一处,其它的文件都会发生相同的变化;②ln的链接又软链接 和硬链接两种,软链接就是ln -s ** **,它只会在你选定的位置上生成一个文件的镜像,不会占用磁盘空间,硬链接ln ** **,没有参数-s, 它会在你选定的位置上生成一个和源文件大小相同的文件,无论是软链接还是硬链接,文件都保持同步变】
[root@localhost database]# ln -s mysql-5.7.28-linux-glibc2.12-x86_64 mysql
[root@localhost database]# ll
total 707688
lrwxrwxrwx. 1 root root 35 Mar 16 13:23 mysql -> mysql-5.7.28-linux-glibc2.12-x86_64
drwxr-xr-x. 9 root root 129 Mar 16 13:21 mysql-5.7.28-linux-glibc2.12-x86_64
-rw-r--r--. 1 root root 724672294 Mar 16 13:13 mysql-5.7.28-linux-glibc2.12-x86_64.tar.gz
4.设置环境变量
[root@localhost mysql]# vim /etc/profile
#添加一行
PATH=/app/database/mysql/bin:$PATH
生效配置:
[root@localhost mysql]# source /etc/profile
[root@localhost mysql]#
[root@localhost mysql]#
[root@localhost mysql]# mysql -V
mysql Ver 14.14 Distrib 5.7.28, for linux-glibc2.12 (x86_64) using EditLine wrapper
注意:
如果环境变量设置错了,可以按照如下方式进行修改:
①查看系统变量,果然是设置错了
echo $PATH
②先还原PATH,再修改 /etc/profile
文件
export PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
5.初始化系统库表:
[root@localhost /]# mysqld --initialize-insecure --user=mysql --basedir=/app/database/mysql --datadir=/data/3306/
报错:如果显示缺少某个库的话,可以进行下载:
eg:如果出现这种报错,可以先删除数据,重新运行即可:
[root@localhost /]# rm -rf /data/3306/*
[root@localhost /]# mysqld --initialize-insecure --user=mysql --basedir=/app/database/mysql --datadir=/data/3306/
MySQL5.7版本的初始化方式
(1)mysqld --initialize:
- 初始化完成后,会有临时密码(12位),但是必须在使用Mysql前重置密码
- 密码管理使用严格模式,3种密码复杂度
(2)mysqld --initialize-insecure
- 初始化完成后,空密码;可自行设置密码
6.配置文件管理
cat > /etc/my.cnf <<EOF
[mysqld]
user=mysql
basedir=/app/database/mysql
datadir=/data/3306
server_id =6
port=3306
socket=/tmp/mysql.sock
[mysql]
socket=/tmp/mysql.sock
EOF
[root@localhost /]# cat /etc/my.cnf
[mysqld]
user=mysql
basedir=/app/database/mysql
datadir=/data/3306
server_id =6
port=3306
socket=/tmp/mysql.sock
[mysql]
socket=/tmp/mysql.sock
7.准备启动
①
[root@localhost /]# cd /app/database/mysql/support-files/
[root@localhost support-files]# ll
total 24
-rw-r--r--. 1 mysql mysql 773 Sep 27 15:00 magic
-rwxr-xr-x. 1 mysql mysql 1061 Sep 27 16:42 mysqld_multi.server
-rwxr-xr-x. 1 mysql mysql 894 Sep 27 16:42 mysql-log-rotate
-rwxr-xr-x. 1 mysql mysql 10576 Sep 27 16:42 mysql.server
注:这里的mysql.server是启动脚本
②拷贝脚本
[root@localhost support-files]# cp mysql.server /etc/init.d/mysqld
③在centos7下,启动:
[root@localhost support-files]# cp mysql.server /etc/init.d/mysqld
[root@localhost support-files]#
[root@localhost support-files]#
[root@localhost support-files]# chkconfig --add mysqld
[root@localhost support-files]# mysql
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.28 MySQL Community Server (GPL)
Copyright (c) 2000, 2019, 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.
以上操作完成后,即顺利完成了启动。