Justin-刘清政的博客

python/MySQL入门/4-Linux安装MySQL

2020-10-22

一 环境准备

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# 1 环境准备
一台centos 7.6虚拟机,能上网,

# 2 清理一下环境
rpm -qa |grep mariadb
yum remove mariadb-libs
# 3 创建用户和组
useradd mysql
useradd mysql -s /sbin/nologin # 不能登录,没有家目录
id mysql

# 4 创建相关目录(软件目录,数据目录)
# 软件目录
mkdir -p /app/database/
# 数据目录
mkdir -p /data/3306
# 日志目录
mkdir -p /binlog/3306
# mkdir -p /app/database/ /data/3306/ /binlog/3306
# 生产建议:软件和数据和日志不要放在同一个地方,一般数据放在另一块磁盘上

# 5 设置权限
chown -R mysql.mysql /app/ /data/ /binlog

二 下载解压环境配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19

# 1 上传并解压软件到 /app/databases/
wget https://downloads.mysql.com/archives/get/p/23/file/mysql-5.7.30-linux-glibc2.12-x86_64.tar.gz
tar xzf mysql-5.7.30-linux-glibc2.12-x86_64.tar.gz

# 2 建立软连接
ln -s mysql-5.7.30-linux-glibc2.12-x86_64 mysql

# 3 设置环境变量
-bin # mysql执行的命令
-support-files # 存放脚本
# 把bin目录设置到环境变量中
vim /etc/profile
#添加一行
export PATH=/app/database/mysql/bin:$PATH
# 生效配置
source /etc/profile
# 验证
mysql -V

三 初始化系统库表

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24


# 1 初始化系统库表(系统数据,数据库要启动,必须依赖一些表,系统表)
mysqld --initialize-insecure --user=mysql --basedir=/app/database/mysql --datadir=/data/3306/
#会报错:
mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory
报错原因: Linux系统中缺少libaio-devel 软件包
#解决:
yum install -y libaio-devel

# 如果再执行一下上面的初始化命令,会报data目录不为空,需要删除数据目录再执行
#########补充:
# 1 初始化数据自带密码
# 5.7开始,MySQL加入了全新的 密码的安全机制:
1.初始化完成后,会生成临时密码(显示到屏幕上,并且会往日志中记一份)
2.密码复杂度:长度:超过12位? 复杂度:字符混乱组合
3.密码过期时间180

# 初始化数据,初始化管理员的临时密码
mysqld --initialize --user=mysql --basedir=/app/database/mysql --datadir=/data/3306/
# 会打印出密码,记住,然后需要修改root密码后才能正常使用数据库
# S44GNgK!h.qg
#2 5.6初始化的区别
./mysql/scripts/mysql_install_db --user=mysql --basedir=/app/database/mysql --datadir=/data/3306/

四 编写配置文件

1
2
3
4
5
6
7
8
9
10
11
# 1 编写默认配置文件
vim /etc/my.cnf
[mysqld]
user=mysql
basedir=/app/database/mysql
datadir=/data/3306/
server_id=6
port=3306
socket=/tmp/mysql.sock
[mysql]
socket=/tmp/mysql.sock

五 配置启动脚本

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 1 配置启动脚本
cd /app/database/mysql/support-files
./mysql.server start
# copymysql的启动脚本至系统管理目录中
cp mysql.server /etc/init.d/mysqld
# centos6中,使用service 启动
service mysqld start
service mysqld stop
service mysqld restart
# centos7中:使用systemctl启动
chkconfig --add mysqld # 把mysqld的脚本添加到systemctl的管理中
systemctl start mysqld
###至此,启动方式可以是
service mysqld start
systemctl start mysqld
/etc/init.d/mysqld start
/app/database/mysql/support-files/mysql.server start

六 修改默认密码

1
2
3
# 1 在登陆前修改密码(使用mysqld --initialize 初始化的数据)
mysqladmin -uroot -p password lqz1234.
输入原始密码

七 修改root密码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
'''
#### mysqld启动时,跳过授权表,跳过tcp/ip连接
--skip-grant-tables 跳过授权表
--skip-networking 跳过tcp/ip连接,不让远程用户登录,否则远程用户不用密码可以直接登录
#### service mysqld start --skip-grant-tables --skip-networking
'''


# 1 跳过授权表启动
[root@db01 ~]mysqld_safe --skip-grant-tables --skip-networking &
# 2 登陆数据库
mysql
# 3 手工把授权表加载到内存
mysql> flush privileges;
mysql> alter user root@'localhost' identified by '123456';
# 4 关闭数据库服务,重启即可
[root@db01 ~]# pkill mysqld
[root@db01 ~]# systemctl start mysqld
使用支付宝打赏
使用微信打赏

点击上方按钮,请我喝杯咖啡!

扫描二维码,分享此文章