MySQL安装部署

Posted 努力吧阿团

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQL安装部署相关的知识,希望对你有一定的参考价值。

于2021年1月16日重新编辑
于2021年4月2日重新编辑

mysql下载

官网下载

下载mysql5.7.26版本


MySQL安装

安装rz工具

#上传下载好的mysql压缩包
$ yum install -y lrzsz
$ rz -be

解压mysql压缩包

#解压mysql,需要注意磁盘空间是否足够,空间不足解压会缺失部分文件
$ mkdir /usr/local/mysql-5.7.26
#创建mysql数据存储目录data
$ mkdir /usr/local/mysql-5.7.26/data
$ tar -zvxf mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz -C /usr/local/mysql-5.7.26/

创建管理mysql的用户跟用户组

$ groupadd mysql
#-M不创建加目录,-s /sbin/nologin不允许登录,-r创建的是系统用户,-g指定用户组
$ useradd -M -s /sbin/nologin -r -g mysql mysql
#查看是否添加成功
$ groups mysql
#修改mysql目录的拥有者为mysql
$ cd /usr/local
$ chown -R mysql:mysql mysql-5.7.26/

设置环境变量

$ vim /etc/profile
export PATH=/usr/local/mysql-5.7.26/bin:$PATH
source /etc/profile

初始化mysql

#执行完毕后,注意输出信息的最后一行是root的初始密码,一定要记住!(root@localhost: -yG5:sl;Ylh-)
$ /usr/local/mysql-5.7.26/bin/mysqld --initialize --user=mysql \\
--basedir=/usr/local/mysql-5.7.26/ \\
--datadir=/usr/local/mysql-5.7.26/data/

修改mysql目录所有者

#修改mysql目录所有者为root用户,data目录所有者为MySQL
$ chown -R root:root /usr/local/mysql-5.7.26 && chown -R \\
> mysql:mysql /usr/local/mysql-5.7.26/data

编辑配置文件

$ cat >/etc/my.cnf <<EOF
[mysqld]
user=mysql
basedir=/usr/local/mysql-5.7.26  #根据实际情况修改路径
datadir=/usr/local/mysql-5.7.26/data #根据实际情况修改路径
socket=/tmp/mysql.sock
server_id=6
port=3306
[mysql]
socket=/tmp/mysql.sock

使用sysv方式启动数据库

$ cp /usr/local/mysql-5.7.26/support-files/mysql.server /etc/init.d/mysqld
$ chmod +x /etc/init.d/mysqld
$ vim /etc/init.d/mysqld
basedir=/usr/local/mysql-5.7.26  #在第46~47行
datadir=/usr/local/mysql-5.7.26/data  #注意此行需要根据实际情况修改路径

#启动数据库
$ /etc/init.d/mysqld start
Starting MySQL. SUCCESS!

#重启数据库
$ service mysqld restart
$ /etc/init.d/mysqld restart

使用systemd方式启动数据库

$ cat >/etc/systemd/system/mysqld.service <<EOF
[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=/usr/local/mysql-5.7.26/bin/mysqld --defaults-file=/etc/my.cnf #根据实际情况修改路径
LimitNOFILE = 5000
EOF

$ systemctl daemon-reload
#启动数据库
$ systemctl start mysqld

访问数据库

无密码访问

#删除data目录下的内容
$ rm -rf /usr/local/mysql-5.7.26/data/*
$ mysqld --initialize-insecure --user=mysql \\
> --basedir=/usr/local/mysql-5.7.26/ \\
> --datadir=/usr/local/mysql-5.7.26/data

$ systemctl restart mysqld

#输入密码那一行直接回车即可
$ mysql -uroot -p
Enter password: 

说明:
--initialize-insecure参数:无限制,无临时密码
--basedir:软件存放位置
--datadir:数据存放路径

使用临时密码访问
注意需要在密码上加单引号

$ mysql -uroot -p\'-yG5:sl;Ylh-\'

判断数据库服务是否启动

$ netstat -lnp|grep 3306
$ ps -ef |grep 3306
$ ps -ef |grep mysql

其他

移除系统原有的maridb

$ rpm -qa|grep mariadb
$ rpm -qa | grep mysql
$ yum remove -y mariadb-libs-5.5.64-1.el7.x86_64

安装依赖包

$ rpm -qa | grep libaio
$ yum -y install libaio

生产环境中为了数据库数据存储方便,可能会单独挂载用于存储数据库数据的硬盘,在此附上格式化硬盘操作方式

$ fdisk /dev/sdb

#查看
$ blkid
$ lsblk

#格式化或者-f强制格式化
$ mkfs.xfs /dev/sdb1

#挂载
$ mkdir /mnt/mysql_data
$ vim /etc/fstab
/dev/sdb1 /mnt/mysql_data xfs defaults 0 0
$ mount -a
$ df -h

学习来自:夜舞倾城博客,老男孩深标DBA课程 第一章

以上是关于MySQL安装部署的主要内容,如果未能解决你的问题,请参考以下文章

导致资产预编译在heroku部署上失败的代码片段

云端部署python代码及安装MySQL

源码安装部署MySQL数据库 二进制安装部署MySQL数据库 yum安装数据库

部署LAMP-mysql 安装

阿里云服务部署gogs代码管理系统

部分代码片段