mysql数据库的部署

本文的mysql数据库部署主要针对“5.7”版本(5.6版本也可以借鉴)

一、mysql数据库的部署

1、下载mysql软件包

下载地址:https://downloads.mysql.com/archives/community/

并根据自己的要求选择相应的版本:
在这里插入图片描述
2、在Linux中创建"/server/tools"目录,用于存放下载的软件包

[root@db01 ~]# mkdir -p /server/tools
[root@db01 ~]# cd /server/tools/
[root@db01 /server/tools]# yum install -y lrzsz  #安装完lrzsz工具后,直接将压缩包拖拽到/server/tools目录下即可
[root@db01 /server/tools]# ls
mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz

3、解压软件

[root@db01 /server/tools]# tar xvf mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz   #解压时最好使用“-v”参数,因为此文件解压时间有点长,不显示解压过程的话,会误以为卡住了。
[root@db01 ~]# mkdir /application
[root@db01 /server/tools]# mv mysql-5.7.26-linux-glibc2.12-x86_64  /application/mysql

4、创建数据库管理用户并设置环境变量

[root@db01 ~]# useradd -M mysql -s /sbin/nologin
/*
    在/etc/profile文件中,永久设置环境变量PATHvim /etc/profile
    要添加的内容
    export PATH=/application/mysql/bin:$PATH
*/
[root@db01 ~]# source /etc/profile
[root@db01 ~]# mysql -V     #产看mysql版本
mysql  Ver 14.14 Distrib 5.7.26, for linux-glibc2.12 (x86_64) using  EditLine wrapper

5、创建数据路径并授权
以上安装的都是mysql数据的软件信息,现在我们要新添加一块磁盘用来保存以后mysql数据库产生的数据信息,从而实现数据信息和软件信息的独立。以防止一块磁盘损坏时,所有的数据都丢失了。
1)在vmvare上db01虚拟机添加一块新的磁盘
2)格式化新磁盘并挂载

[root@db01 ~]# fdisk -l  #查看磁盘是否添加成功
[root@db01 ~]# mkfs.xfs /dev/sdb #对新添加的磁盘进行格式化,然后才能挂载
[root@db01 ~]# mkdir /data   #创建/data目录,用于存储mysql数据库产生的数据,所以需要将新的磁盘挂载在此目录下。
[root@db01 ~]# blkid
[root@db01 ~]# vim /etc/fstab    #永久挂载
[root@db01 ~]# UUID="b7fde522-aa37-412a-9584-8313a673c5cc" /data xfs defaults 0 0
[root@db01 ~]# mount -a
[root@db01 ~]# df -h

6、授权

[root@db01 ~]# chown -R mysql:mysql /application/*
[root@db01 ~]# chown -R mysql:mysql /data
#让和mysql数据相关的目录,都让mysql用户来管理,否则mysql数据库启动时就可能会报错

7、初始化mysql数据库

[root@db01 ~]# mkdir -p /data/mysql/data 
[root@db01 ~]# chown -R mysql:mysql /data  #因为在/data目录下新创建了目录,新的目录的属主数组不是mysql,所以需要重新授权
[root@db01 ~]# mysqld --initialize --user=mysql --basedir=/application/mysql --datadir=/data/mysql/data
2019-06-13T04:21:27.706564Z 1 [Note] A temporary password is generated for root@localhost: =mrV)_16is4U (这里就是临时密码)
--initialize参数:在初始化的同时,也设置了数据库的临时密码
密码的复杂度:12位  4种字符
密码过期时间:180天

初始化过程种可能出现报错的情况:

mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory
缺少"libaio.so.1"这个依赖包

解决:
[root@db01 ~]# yum install -y libaio-devel

若是想在初始化时,不想要临时密码:可使用"–initialize-insecure"

[root@db01 /data/mysql/data]# \rm -rf /data/mysql/data/*  (把上一种方式初始化产生的文件数据删除,重新初始化)
[root@db01 ~]# cd /usr/local/Percona-Server-5.7.26 && ./bin/mysqld --defaults-file=/mysql/my4339.cnf --initialize-insecure --basedir=/usr/local/Percona-Server-5.7.26
tip:5.6版本的mysql数据库初始化,只需执行
"/application/mysql/scripts/mysql_install_db --user=mysql --basedir=/application/mysql --datadir=/applicaiton/mysql/data"命令即可

因为MySQL 5.6版本中存放数据信息的"data"目录,在mysql-5.6.44-linux-glibc2.12-x86_64目录已经被创建好了,无需像MySQL 5.7版本那样自己创建

8、编辑配置文件,否则mysql数据库无法启动

cat >/etc/my.cnf <<EOF
[mysqld]
user=mysql
basedir=/application/mysql
datadir=/data/mysql/data
socket=/tmp/mysql.sock
server_id=6
port=3306
[mysql]
socket=/tmp/mysql.sock
EOF

9、启动mysql数据库
1)第一种方式,针对的是CentOS 6 版本服务启动的方式

[root@db01 /etc/init.d]# cp /application/mysql/support-files/mysql.server  /etc/init.d/mysqld 
[root@db01 /etc/init.d]# service mysqld restart
/*
   service mysqld stop  停止mysql服务
   service mysqld status 查看mysql服务的状态
*/

2)第二种方式,针对的是CentOS 7 版本服务启动的方式
注意:使用第一种方式启动了mysql服务的话,需要先关闭,才能使用第二种方式启动。

cat >/usr/lib/systemd/system/mysqld.service<<EOF    #下面的信息可以在mysql官方网站上找到
[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=/application/mysql/bin/mysqld --defaults-file=/etc/my.cnf    #也可以在命令行执行此命令,启动mysql服务,只不过这种方式启动时,会把启动日志也打印在屏幕上。当mysql日志文件打不开或者无法写入时,可使用这种方式产看日志。
#--defaults-file参数:强制使用指定的配置文件
LimitNOFILE = 5000
EOF

10、管理员密码的设定(root@localhost)

[root@db01 ~]# mysqladmin -uroot password   #一般系统不建议直接在命令行设置密码,这样别人就会很容易产看系统历史操作知晓数据库的密码
Enter password:   #(在提示的后面输入自己要设置的密码)

二、数据库基础维护

管理员用户密码忘记怎么办?
1、关闭数据库

[root@db01 ~]# systemctl stop mysqld
Shutting down MySQL.. SUCCESS! 

2、启动数据库到维护模式

[root@db01 ~]# mysqld_safe --skip-grant-tables --skip-networking &   #(&:后台运行)

--skip-grant-tables  #跳过授权表    跳过mysqld进程结构中连接层的授权表,这样mysql就不会去验证用户的合法性了,同时也就无法在数据库中使用grant命令修改用户的密码,或者给用户授权了。若是想用grant命令,则需要flush privileges 把授权表重新加载了
--skip-networking    #跳过远程登录  这样就只能本地操作数据库,不能通过远程连接软件连接数据库

3.登录mysql数据库并修改密码

[root@db01 ~]# mysql  #使用mysql 命令直接登录数据库,无需指定用户及密码

更改操作:
mysql> alter user root@'localhost' identified by '1';
ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement
mysql> flush privileges;
mysql> alter user root@'localhost' identified by '1';   #(alter 也可修改用户的密码)
Query OK, 0 rows affected (0.01 sec)

tip:在mysql.user数据表中存储着数据库管理者的信息,user host authentication_string 三个字段分别存储着用户名、主机地址、用户密码信息

4、关闭数据库,使用新设置的密码重新登录

mysql数据库的日志文件位置:/data/mysql/data/主机名.err

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值