文章目录
注意:我习惯自己的服务器使用root用户安装,不单独再创建一个mysql用户
初衷:
写这篇文章的主要目的是为了以后自己再去安装MySQL时能有有个参照,其实自己在本地有文件存储了该流程配置,但是要一直备份,现在想要放到网上,一来只要有网就能查看,方便学习;二来也能帮助和我一样的小伙伴(其实网上该类似的文章不少,比我写的全的、好的也不计其数,自己选择适合自己的即可)。
一、tar.gz方式安装
1、安装前准备(删除历史版本)
1.1、检查是否已经安装过MySQL
执行命令
rpm -qa | grep mysql
如果已存在,则执行删除命令 后边为Mysql目录
rpm -e --nodeps mysql-xxxx
1.2、查询所有MySQL对应的文件夹
whereis mysqlm(这步骤我没查出来东西)
find / -name mysql
删除相关目录或文件
rm -rf /usr/bin/mysql /usr/include/mysql /data/mysql /data/mysql/mysql
验证是否删除完毕
whereis mysqlm
find / -name mysql
1.3、检查MySQL用户组和用户是否存在
如果没有,则创建 (我不涉及这步骤)
cat /etc/group | grep mysql
cat /etc/passwd |grep mysql
groupadd mysql
useradd -r -g mysql mysql
1.4、下载安装包
wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz
可以去官网下载:
下载地址:https://dev.mysql.com/downloads/mysql/5.7.html#downloads
2、安装
2.1、下载目录
/opt/core/mysql
进行解压:
tar -zxvf mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz
2.2、移动并重命名
mv mysql-5.7.24-linux-glibc2.12-x86_64 /usr/local/mysql
2.3、创建数据存放目录
mkdir -p /opt/data/mysqldata
cd /opt/data
chown -R root:root mysqldata
并授予root用户权限:
2.4、创建mysql用户组和用户并修改权限
(这步我不涉及)
groupadd mysql
useradd -r -g mysql mysql
创建数据目录并赋予权限
mkdir -p /data/mysql #创建目录
chown mysql:mysql -R /data/mysql #赋予权限
2.5、配置my.cnf
vim /etc/my.cnf
文件内容:
[mysqld]
bind-address=0.0.0.0
port=3306
user=root
basedir=/usr/local/mysql
datadir=/opt/data/mysqldata
socket=/tmp/mysql.sock#sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
max_connections=400
innodb_file_per_table=1
lower_case_table_names=1
character_set_server=utf8
symbolic-links=0[mysqld_safe]
log-error=/opt/data/mysqldata/mysql.err
pid-file=/opt/data/mysqldata/mysql.pid
!includedir /etc/my.cnf.d
2.6、初始化数据库
进入mysql的bin目录
cd /usr/local/mysql/bin/
初始化:
./mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql/ --datadir=/opt/data/mysqldata/ --user=root --initialize
注意:
若报以下错误:
解决办法:
3、启动MySQL并更新配置
3.1、启动mysql
先将mysql.server放置到/etc/init.d/mysql中(后期设置开机自启)
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
启动:
service mysql start
ps -ef|grep mysql
到这里说明mysql已经安装成功并正常启动了!!
3.2、更改root 密码
首先登录mysql,前面的那个是随机生成的。
cd /usr/local/mysql/bin
./mysql -u root -p #bin目录下
再执行下面三步操作,然后重新登录。
SET PASSWORD = PASSWORD(‘123456’);
ALTER USER ‘root’@‘localhost’ PASSWORD EXPIRE NEVER;GRANT ALL PRIVILEGES ON . TO ‘root’@‘%’ IDENTIFIED BY ‘123456’ WITH GRANT OPTION;
FLUSH PRIVILEGES;
4、客户端连接测试
5、设置开机自启
先将mysql.server放置到/etc/init.d/mysql中(后期设置开机自启)
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
赋予可执行权限:
chmod +x /etc/init.d/mysql
执行chkconfig --list结果:
添加为服务:
chkconfig --add mysql
查看服务列表:
chkconfig --list
看到3、4、5状态为开或者为 on 则表示成功。如果是 关或者 off 则执行一下:
chkconfig --level 345 mysql on
重启计算机:
reboot
再次查看服务列表或者查看3306端口号
6、备注:
如果不希望每次都到bin目录下使用mysql命令则执行以下命令
ln -s /usr/local/mysql/bin/mysql /usr/bin
二、rpm方式安装(升级)
1、安装前准备(删除历史版本)
1.1、备份数据和配置文件 (升级操作涉及)
1.1.1、备份所有数据库的数据
/usr/local/mysql/bin/mysqldump -uroot -p -A > /run/mysqlfull.sql
1.1.2、备份配置文件
cp /etc/my.cnf /etc/my.cnf.bak
1.2、检查是否已经安装过MySQL
执行命令
rpm -qa | grep mysql
如果已存在,则执行删除命令 后边为Mysql目录
rpm -e --nodeps mysql-xxxx
1.2.1、查询所有MySQL对应的文件夹
whereis mysqlm(这步骤我没查出来东西)
find / -name mysql
删除相关目录或文件(方面看清目录做了分行)
rm -rf /etc/rc.d/init.d/mysql
/etc/selinux/targeted/active/modules/100/mysql
/etc/selinux/targeted/tmp/modules/100/mysql
/var/lib/mysql
/var/lib/mysql/mysql
/usr/local/mysql
/usr/local/mysql/bin/mysql
/usr/local/mysql/include/mysql
/opt/data/mysqldata/mysql
验证是否删除完毕
whereis mysqlm
find / -name mysql
1.3、删除系统中存在的mysql依赖 (我没有用到)
yum remove mysql mysql-server mysql-libs compat-mysql51
1.4、停止MySQL服务 (升级操作涉及)
systemctl status mysql.service 查看状态
systemctl stop mysql.service 停止服务
systemctl start mysql.service 启动服务
2、开始安装(升级)
2.1、下载MySQL对应操作系统版本的rpm包
tar -xvf mysql-8.0.29-1.el7.x86_64.rpm-bundle.tar
2.2、执行rpm安装
rpm -ivh mysql-community-common-8.0.29-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-plugins-8.0.29-1.el7.x86_64.rpm
rpm -ivh mysql-community-libs-8.0.29-1.el7.x86_64.rpm
rpm -ivh mysql-community-client-8.0.29-1.el7.x86_64.rpm
rpm -ivh mysql-community-icu-data-files-8.0.29-1.el7.x86_64.rpm
rpm -ivh mysql-community-server-8.0.29-1.el7.x86_64.rpm
2.3、验证MySQL版本
mysqladmin --version
2.4、此时输入MySQL打开提示
2.5、启动MySQL服务
systemctl status mysql.service 查看状态
systemctl stop mysql.service 停止服务
systemctl start mysql.service 启动服务
2.6、此时输入MySQL提示连接拒绝
这是因为当我们在安装mysql的时候会自动随机产生一个密码,我们可以通过搜索mysql.log的日志查看当前密码
grep ‘password’ /var/log/mysqld.log
可以找到对应的初始密码
3、重置密码,设置远程权限
3.1、重置密码
(重置密码方式一) 【我使用的是这种】
alter user root@localhost identified by ‘xxxxx’;
flush privileges;
如果不限制密码强度,可以执行以下:
set global validate_password_length=4;
set global validate_pasword_policy=0;
flush privileges;
或者 (重置密码方式二)
ALTER USER ‘root’@‘%’ IDENTIFIED WITH mysql_native_password BY ‘xxxxx’;
flush privileges;
或者 (重置密码方式三)
set password for root@localhost = password(‘xxxxx’);
flush privileges;
3.2、远程权限
use mysql;
update user set Host = ‘%’ where User = ‘root’;
flush privileges;
或者
GRANT ALL ON . TO ‘root’@‘%’;
flush privileges;
4、rpm方式重要文件路径说明
主要文件默认路径如下:
配置文件路径:/etc/my.cnf
数据存储目录:/var/lib/mysql
错误日志存储路径:/var/log/mysqld.log
socket文件路径:/var/lib/mysql/mysql.sock
如上参数均可以通过/etc/my.cnf参数配置文件查看和自定义。
推荐
Linux上安装Mysql