MySQL 的安装和配置
MySQL 的安装和配置
作者:Grey
原文地址:
环境
操作系统版本:CentOS 7/Debian 12
MySQL 版本:mysql-8.0.36-linux-glibc2.17-x86_64-minimal.tar.xz
MySQL 下载地址
新建用户和用户组
CentOS 7 执行
groupadd mysql
useradd -r -g mysql -s /bin/false mysql
Debian 12 执行
groupadd mysql
useradd -g mysql -s /sbin/nologin mysql
准备必要文件夹并赋予相应的权限
准备必要文件夹
mkdir -p /usr/local/mysql /data/mysql/
给用户组赋予相应的权限
CentOS 7 下
chown -R mysql.mysql /usr/local/mysql/
chown -R mysql.mysql /data/mysql/
chmod -R 755 /data/mysql/
chmod -R 755 /usr/local/mysql/
Debian 12 下
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 12 下执行
apt -y install wget gcc openssl git bison numactl libncurses5 libaio-dev libncurses6
上传并解压 MySQL 安装包
将mysql-8.0.36-linux-glibc2.17-x86_64-minimal.tar.xz
上传至服务器的/usr/local/
目录下并解压
cd /usr/local/
tar -xf mysql-8.0.36-linux-glibc2.17-x86_64-minimal.tar.xz
将解压后的 mysql 安装包放入/usr/local/mysql
目录下
cd /usr/local
mv mysql-8.0.36-linux-glibc2.28-x86_64/* mysql/
初始化
/usr/local/mysql/bin/mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql
【可选】修改 MySQL 配置
备份配置
cd /etc
如果/etc
目录下已经有my.cnf
文件,请先备份
cp my.cnf my.cnf.backup
如果不存在my.cnf
文件,在/etc
下新建my.cnf
文件
将/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 12 下执行
系统重新读取服务文件
systemctl daemon-reload
启动
service mysqld restart
【可选】增加到开机启动
CentOS 7 下执行
chkconfig --level 345 mysqld on
Debian 12 下执行
systemctl enable mysqld
【可选】新建一个用户并赋予权限
安装完毕后,root
用户默认没有密码,可以通过如下命令登录并修改root
用户密码
mysql -u root -p
按回车,即可无密码登录
可以通过如下命令创建用户
例如:我们创建的用户名/密码:young/0320
create user 'young'@'%' identified by 'a0320';
赋予权限
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 12 下执行
首先需要安装 iptables(通常系统都会自带,如果没有就需要安装)
apt-get install iptables iptables-persistent -y
放行 3306 端口
iptables -I INPUT -p tcp --dport 3306 -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`
批量删除。
参考文档
本文来自博客园,作者:Grey Zeng,转载请注明原文链接:https://www.cnblogs.com/greyzeng/p/14789224.html