Centos7 源码安装 MySQL5.7

下载安装

# 具体版本可在 https://dev.mysql.com/downloads/mysql/5.7.html 页面查看
cd /root
wget http://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.29-linux-glibc2.12-x86_64.tar.gz

# 解压
tar xvfz mysql-5.7.29-linux-glibc2.12-x86_64.tar.gz

# 移动
mv mysql-5.7.29-linux-glibc2.12-x86_64 /usr/local/mysql
cd /usr/local/mysql

# 补全一些目录
mkdir /usr/local/mysql/data
mkdir /var/log/mysql

# 创建用户
useradd mysql

# 修改权限
chown -R mysql.mysql /usr/local/mysql

# 安装依赖,否则报 libaio.so.1 找不到
yum -y install libaio*

# 安装
/usr/local/mysql/bin/mysqld --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data --initialize

配置 /etc/my.cnf

cat <<EOF > /etc/my.cnf
[mysqld]
datadir=/usr/local/mysql/data
basedir=/usr/local/mysql
socket=/tmp/mysql.sock
user=mysql
port=3306
character-set-server=utf8
# 取消密码验证
skip-grant-tables
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
EOF

快捷方式和自动重启

# 添加快捷方式
ln -s /usr/local/mysql/bin/mysql /usr/bin
ln -s /usr/local/mysql/bin/mysqldump /usr/bin

# 将mysql加入服务
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql

# 开机自启
chkconfig mysql on

# 开启
systemctl start mysql

# 进入MySQL,设置密码
/usr/local/mysql/bin/mysql -u root -p

重设密码

开始MySQL操作
use mysql;
update user set authentication_string=password('root') where user='root';
flush privileges;
exit;
调整配置文件 /etc/my.cnf

将/etc/my.cnf中的skip-grant-tables删除

vi /etc/my.cnf

:%s/skip-grant-tables/# skip-grant-tables/g
:wq

/usr/local/mysql/bin/mysql -u root -proot
登录再次设置一次

登录再次设置一次,不执行这一步好像有登录不了的问题

ALTER USER 'root'@'localhost' IDENTIFIED BY 'root';
exit;
重启下服务
systemctl restart mysql
创建一个非 root 账号,允许远程连接
/usr/local/mysql/bin/mysql -u root -proot
-- 创建业务数据库
CREATE DATABASE ${db_name} CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

-- 创建一个远程查询的的账号
CREATE USER ${user_name} IDENTIFIED BY '${user_password}';
-- 授权所有 IP 可以访问
GRANT SELECT ON ${db_name}.* TO '${user_name}'@'%';

-- 创建一个局域网访问的账号
CREATE USER '${local_user_name}'@'192.168.0.%' IDENTIFIED BY '${local_user_password}';

GRANT ALL ON ${db_name}.* TO '${local_user_name}'@'192.168.0.%';
-- 刷新用户权限
flush privileges;
posted @ 2020-11-12 10:54  天明听歌  阅读(93)  评论(0编辑  收藏  举报