Loading

MySQL 的安装和配置

MySQL 的安装和配置

作者:Grey

原文地址: MySQL 的安装和配置

环境

操作系统版本:CentOS 7/Debian 10

MySQL 版本:mysql-8.0.27-linux-glibc2.17-x86_64-minimal.tar.xz

MySQL 下载地址

新建用户和用户组

CentOS 7下

groupadd mysql
useradd -r -g mysql -s /bin/false mysql

Debian 10下

groupadd mysql
useradd -g mysql -s /sbin/nologin mysql

准备必要文件夹并赋予相应的权限

准备必要文件夹

mkdir -p /usr/local/mysql /data/mysql/

给用户赋予相应的权限

chown -R mysql.mysql /usr/local/mysql/
chown -R mysql.mysql /data/mysql/
chmod -R 755 /data/mysql/
chmod -R 755 /usr/local/mysql/

安装必要依赖

CentOS 7下

yum -y install wget gcc gcc-c++ ncurses ncurses-devel libaio-devel openssl openssl-devel git bison
yum install -y centos-release-scl-rh 
yum install -y centos-release-scl
yum install -y devtoolset-10-gcc 
yum install -y devtoolset-10-gcc-c++

Debian 10 下

apt -y install wget gcc openssl  git bison numactl libncurses5 libaio-dev

上传并解压 MySQL 安装包

mysql-8.0.27-linux-glibc2.17-x86_64-minimal.tar.xz上传至服务器的/usr/local/目录下并解压

cd /usr/local/
tar -xf mysql-8.0.27-linux-glibc2.17-x86_64-minimal.tar.xz

将解压后的 mysql 安装包放入/usr/local/mysql目录下

cd /usr/local
mv mysql-8.0.27-linux-glibc2.17-x86_64-minimal/* mysql/

初始化

/usr/local/mysql/bin/mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql

【可选】修改 MySQL 配置

备份配置

cd /etc
cp my.cnf my.cnf.backup

/etc/my.cnf内容替换为如下内容:

[client]
port=3306
socket=/tmp/mysql.sock
default-character-set=utf8
#user=root
#password=123
[mysqld]
server-id=1
#skip-grant-tables
default_authentication_plugin=mysql_native_password
port=3306
user=mysql
log_bin=mysql-bin
binlog_format=mixed
max_connections=200
socket=/tmp/mysql.sock
basedir=/usr/local/mysql
datadir=/data/mysql
pid-file=/data/mysql/mysql.pid
init-connect='SET NAMES utf8'
character-set-server=utf8
default-storage-engine=INNODB
log_error=/data/mysql/mysql-error.log
slow_query_log_file=/data/mysql/mysql-slow.log
[mysqldump]
quick
max_allowed_packet=16M

注:这步是可选的,也可以根据需要自定义配置。

配置环境变量和启动脚本

环境变量

echo "export PATH=/usr/local/mysql/bin:$PATH" >> /etc/profile

应用环境变量

source /etc/profile

配置启动脚本

cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld

CentOS 7下

给启动脚本赋予可执行权限

chmod +x /etc/init.d/mysqld

Debian 10下

系统重新读取服务文件

systemctl daemon-reload

启动

service mysqld restart

【可选】增加到开机启动

CentOS 7下

chkconfig --level 345 mysqld on

Debian 10下

systemctl enable mysqld

【可选】新建一个用户并赋予权限

安装完毕后,root用户默认没有密码,可以通过如下命令登录并修改root用户密码

mysql -u root -p

按回车,即可无密码登录

可以通过如下命令创建用户

例如:我们创建的用户名/密码:young/0320

create user 'young'@'%' identified by '0320';

赋予权限

grant all privileges on *.* to 'young'@'%';
flush privileges;

开通相关端口

如果要远程访问 MySQL,操作系统需要打开 MySQL 的默认3306端口的访问权限

CentOS 7下

firewall-cmd --zone=public --add-port=3306/tcp --permanent  
firewall-cmd --reload

Debian 10下,
首先需要安装 iptables(通常系统都会自带,如果没有就需要安装)

apt-get install iptables iptables-persistent -y

放行3306端口

iptables -I INPUT -p tcp --dport 8443 -j ACCEPT

然后保存放行规则

iptables-save 

保存规则持续生效

netfilter-persistent save
netfilter-persistent reload

卸载

如果要完全卸载 MySQL,可以通过如下的方式:

停止服务

service mysqld stop

然后执行

find / -name mysql

找到所有mysql相关的文件夹

/etc/selinux/targeted/active/modules/100/mysql
/usr/lib64/mysql
/usr/share/mysql
/usr/local/mysql
/usr/local/mysql/bin/mysql
/usr/local/mysql/include/mysql
/data/mysql
/data/mysql/mysql

然后执行rm -rf删掉这些文件即可。

当然你确保

find / -name mysql

出来的文件没有需要保留的文件,也可以执行

rm -rf `find / -name mysql`

批量删除。

参考文档

Installing MySQL Using a Standard Source Distribution

Centos7源码编译安装mysql8

CentOS7.2 源码安装MySQL8.0

linux设置mysql开机启动

posted @ 2021-05-20 11:39  Grey Zeng  阅读(386)  评论(0编辑  收藏  举报