环境配置
- CentOS 7
- MySQL 8.0.31 x64
下载MySQL压缩包
官方下载地址:MySQL社区版下载地址
下载完成后上传到服务器,或者直接在服务器上使用wget
命令下载效果相同
安装前准备
主要步骤:
- 解压MySQL安装包
- 创建相关文件
- 创建用户及授权
- 修改配置文件
- 配置环境变量
1.解压MySQL安装包
我的安装包被上传到/home/share
目录下
# 切换到压缩包所在目录
cd /home/share
# 解压缩MySQL安装包到当前目录
tar -xvf mysql-8.0.31-linux-glibc2.12-x86_64.tar.xz
# 创建数据库安装文件夹(根据你自己需要修改)
mkdir /usr/local/mysql
# 复制解压后的文件到安装文件夹
mv /home/share/mysql-8.0.31-linux-glibc2.12-x86_64 /usr/local/mysql
2.创建相关文件
# 创建数据文件存储位置
mkdir /usr/local/mysql/data
# 创建套接字存储位置
mkdir /var/lib/mysql
3.创建用户及授权
创建名为mysql
的用户及用户组
# 创建用户组
groupadd mysql
# 创建用户
useradd -g mysql mysql
给mysql
用户及用户组授权,不然后面安装时可能会报错
# 授权安装目录
chown -R mysql:mysql /usr/local/mysql
# 授权mysql对data目录的读区和执行权限
chmod -R 750 /usr/local/mysql/data
# 授权套接字文件目录
chown -R mysql:mysql /var/lib/mysql/
4. 修改配置文件
使用如下命令修改/etc/my.cnf
配置文件,如果不存在就会自动创建
# 编辑/etc/my.cnf
vi /etc/my.cnf
将下面的配置复制到上面的配置文件中
[mysqld]
# 数据库端口
port=3306
# mysql安装目录
basedir=/usr/local/mysql
# 数据文件存储目录
datadir=/usr/local/mysql/data
# 最大连接数
max_connections=200
# 字符集
character-set-server=utf8mb4
# 默认存储引擎
default-storage-engine=INNODB
# 连接mysql时的套接字存储位置
socket=/var/lib/mysql/mysql.sock
# 启动用户(很重要)
user=mysql
#sql_mode=NO_AUTO_VALUE_ON_ZERO,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
# Settings user and group are ignored when systemd is used.
# If you need to run mysqld under a different user or group,
# customize your systemd unit file for mariadb according to the
# instructions in http://fedoraproject.org/wiki/Systemd
[mysqld_safe]
log-error=/usr/local/mysql/data/mysql.log
pid-file=/usr/local/mysql/data/mysql.pid
#
# include all files from the config directory
#
!includedir /etc/my.cnf.d
在上面的配置中,user=mysql
很重要,如果添加这个配置并且你使用的是root
用户启动的话,在后面初始化数据库时会有一个报错ERROR! The server quit without updating PID file (/usr/local/mysql/data/localhost.pid)
除此之外,如果不添加该配置的话,另一个解决办法是使用mysql
用户登录,但是这种情况我没有进行测试,如有需要请自行测试!
授权配置文件访问权限
chown 777 /etc/my.cnf
5.配置环境变量
配置环境变量的作用是让用户在任意目录下都可以执行mysql
命令,如果不配置的话,就需要每次都切换到安装位置的bin
目录下执行mysql
命令
# 编辑/etc/profile
vi /etc/profile
打开文件后,按住shift+G
组合键可以快速跳转到文件最后一行,并在最后一行添加如下配置
export MYSQL_HOME=/usr/local/mysql
export PATH=$PATH:$MYSQL_HOME/bin:$MYSQL_HOME/lib
如果PATH
后面不为空,则直接将如下内容添加到PATH
后面即可
# 其中/usr/local/mysql,是你的mysql安装位置,根据你自己的安装位置进行替换
/usr/local/mysql/bin:/usr/local/mysql/lib
保存退出,然后执行如下命令使配置生效
source /etc/profile
安装MySQL
- 安装并初始化MySQL
- 将MySQL加入服务
- 启动MySQL服务
1.安装并初始化MySQL
mysqld --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data/ --initialize --console
上面命令执行后如果报错:ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
则执行如下命令
ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock
如果没有报错的话,一般最后一行会给root
用户随机生成一个密码,一定保存好,别被命令行冲没了。
2.将MySQL加入服务
在mysql安装目录usr/local/mysql
下执行
cp support-files/mysql.server /etc/init.d/mysql
cp support-files/mysql.server /etc/init.d/mysqld
授予上述两个文件执行权限
chmod +x /etc/init.d/mysql
chmod +x /etc/init.d/mysqld
3.启动MySQL服务
service mysql start
# 或者
systemctl mysql start
修改root用户密码
在终端输入mysql -uroot -p
回车,输入上一步初始化时生成的随机密码进入数据库
执行如下语句:
# 修改root密码
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码';
# 刷新权限表
flush privileges;
# 授予远程访问权限
update user set host='%' where user='root';
# 刷新权限表
flush privileges;
评论区