DevOps开发运维
成长之路

MySQL5.7.20版本部署安装

环境:Linux发行版本CentOS7.5

二进制:简单方便
YUM:推荐官方yum,因其他yum源安装,数据相关产品yum安装不安全
编译安装:二次开发,功能嵌入等

1.创建软件目录

[root@xiaoyong ~]# mkdir /app
上传软件到此目录

2.解压并改名为mysql

[root@xiaoyong app]# tar xf mysql-5.7.20-linux-glibc2.12-x86_64.tar.gz
[root@xiaoyong app]# mv mysql-5.7.20-linux-glibc2.12-x86_64 mysql
[root@xiaoyong app]# ll /app/mysql
total 36
drwxr-xr-x 2 root root 4096 Oct 8 14:12 bin
-rw-r--r-- 1 7161 31415 17987 Sep 13 2017 COPYING
drwxr-xr-x 2 root root 55 Oct 8 14:12 docs
drwxr-xr-x 3 root root 4096 Oct 8 14:12 include
drwxr-xr-x 5 root root 229 Oct 8 14:12 lib
drwxr-xr-x 4 root root 30 Oct 8 14:12 man
-rw-r--r-- 1 7161 31415 2478 Sep 13 2017 README
drwxr-xr-x 28 root root 4096 Oct 8 14:12 share
drwxr-xr-x 2 root root 90 Oct 8 14:12 support-files

3.为了调用命令更加方便,修改环境变量

vim /etc/profile
export PATH=/app/mysql/bin:$PATH
source /etc/profile

4.建立mysql用户和组(如果已有可忽略)

useradd mysql 
或者
useradd -s /sbin/nologin -M mysql

5.创建相关目录并修改权限

mkdir /data/mysql -p
chown -R mysql.mysql /app/*
chown -R mysql.mysql /data/*

6.初始化数据(建库)

方法1:初始化数据,初始化管理员的临时密码


[root@xiaoyong ~]# mysqld --initialize --user=mysql --basedir=/app/mysql --datadir=/data/mysql

新特性重要说明:
5.7开始,MySQL加入了全新的 密码的安全机制:
1.初始化完成后,会生成临时密码(显示到屏幕上,并且会往日志中记一份)
2.密码复杂度:长度:超过12位? 复杂度:字符混乱组合
3.密码过期时间180天

初始化数据错误解决方法:

[root@xiaoyong ~]# mysqld --initialize --user=mysql --basedir=/app/mysql --datadir=/data/mysql
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/mysql 存在文件
解决:\rm -rf /data/mysql/*

方法2 :初始化数据,初始化管理员的密码为空

[root@xiaoyong ~]# rm -rf /data/mysql/*
[root@xiaoyong ~]#mysqld --initialize-insecure --user=mysql --basedir=/app/mysql --datadir=/data/mysql

维护mysql正常运行的系统文件

注释:5.6初始化的区别

/application/mysql/scripts/mysql_install_db --user=mysql --datadir=/application/mysql/data --basedir=/application/mysql

7.书写默认配置文件

[root@xiaoyong ~]# vim /etc/my.cnf
[mysqld]
user=mysql
basedir=/app/mysql
datadir=/data/mysql
server_id=6
port=3306
socket=/tmp/mysql.sock
[mysql]
socket=/tmp/mysql.sock
prompt=3306 [\\d]>

8.配置启动脚本

[root@xiaoyong ~]# cd /app/mysql/support-files/
[root@xiaoyong support-files]# ./mysql.server start
Starting MySQL SUCCESS!
[root@xiaoyong support-files]# ./mysql.server stop
Shutting down MySQL.. SUCCESS!

centos6的启动方式

[root@xiaoyong support-files]# cp mysql.server /etc/init.d/mysqld
[root@xiaoyong support-files]# service mysqld start

查看mysql是否启动

[root@xiaoyong support-files]# netstat -lnp|grep 330
[root@xiaoyong support-files]# ps -ef|grep mysqld
[root@xiaoyong support-files]# ss -lnp|grep 330

9.使用systemd管理mysql

[root@xiaoyong support-files]#vim /etc/systemd/system/mysqld.service
[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
ExecStart=/app/mysql/bin/mysqld --defaults-file=/etc/my.cnf
LimitNOFILE = 5000

注意:将原来模式启动mysqld先关闭,然后再用systemd管理。

systemctl start/stop/restart/status mysqld

MySQL安装后的简单管理

[root@xiaoyong ~]# mysqladmin -uroot -p password 123
Enter password:
[root@xiaoyong ~]# mysql -uroot -p

查看用户密码是否设置成功:

5.6版本:
select user,password,host from mysql.user;
5.7版本:
select user,authentication_string,host from mysql.user;
如果记不得部分命令,方法:
desc mysql.user;

用户和密码只能本地登陆,远程无法访问,默认mysql不允许远程登陆,因为没有相关的用户被授权.

赞(2)

评论 抢沙发

评论前必须登录!

 

LNMP社群 不仅仅是技术

关于我们网站地图