Mysql 安装后的配置管理 | 学习笔记

简介: 快速学习 Mysql 安装后的配置管理

开发者学堂课程【阿里云上搭建 LAMP 环境实战:Mysql 安装后的配置管理】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/663/detail/11089


Mysql 安装后的配置管理

 

内容介绍

一、Mysql 安装后的配置管理

二、初始化授权表

三.启动、登录和关闭 MySQL

 

一、Mysql 安装后的配置管理

使用#clear 命令清一下屏,第一步是修改 MySQL 目录的用户归属,因为默认的MySQL 是安装到了 user 下面 local 下面 MySQL 下面的,那 MySQL 所有的归属我们安装的时候,用的是 root 用户,所以归属是 root 用户,而启动运行这个用户是 MySQL 用户,我们创建的,MySQL 用户没有权限执行 root 用户的,所以要改MySQL 目录用户归属设置为 MySQL用户(叫其他用户也行),但是不可使用管理员用户,不安全。

MySQL 安装后需要调整相应配置文件和参数才能正常运行

a.修改 MySQL 目录的用户归属

#chown -R mysql:mysql /usr/local/mysql

那么下面的所有权限都变成 MySQL 用户的归属了,完成后现在 MySQL 用户有权限对他下面目录进行操作了,比如启动运行、更改、写日志等,但是数据目录在我们安装时候,指定在  cd 下面 date 下面 MySQL 这个目录,

执行命令:#cd /data/mysql就可以看到提示:No  Such file or directory(含义为现在没有目录),得做一些初始化数据库的设置,在新版本没有,我们要把目录创建出来,

执行命令:#mkdir-p /data/mysql/现在有这两个目录了,但是现在是用 root 创建的,存在问题,这个数据文件 MySQL 里面增删改查存储的数据都是在这个目录下,那现在也有权限了,同样把数据文件的权限归属设置 Mysql 组和用户,

执行命令:#chown -R mysql:mysql /data/mysql/,

然后依次执行:#ll ->#cd..->#ll->#cd mysql/找到目录,可以看到现在是一个空的目录,是刚刚新创建的,新建完目录后我们下一步初始化数据库,

使用的命令:#cd /user/local/mysql/bin/ 和#ls 可以看到 user 的 local 中 mysql 的 bin 目录下的内容,这里面都是 MySQL 的操作命令,启动数据库 mysqld _safe、关闭管理 mysqlpump、执行客户端 mysql等;当里面我们用到的时候,后面有针对的讲解,学习数据库的管理,这里面讲解能用到的命令。

如果想初始化数据库,先回到当前目录:#cd -之后执行#/usr/local/mysql/bin/mysqld --initialize --user=mysql \ --basedir=/usr/local/mysql --datadir=/data/mysql命令其中执行 mysqld这个命令,其中执行用户 user 为 mysql 用户,家目录 basedir 为/usr/local/mysql,数据目录 datadir 是这个家目录下的/data/mysql

b.初始化数据库

#mkdir-p /data/mysql/

#chown -R mysql:mysql /data/mysql/

#/usr/local/mysql/bin/mysqld --initialize --user=mysql \

--basedir=/usr/local/mysql --datadir=/data/mysql

上述执行完毕后,输入命令:#pwd和#ls就可以查看目录,如果我们创建完数据库或数据表,都会在其中有体现,根据不同引擎,会创建不同的数据文件,同时一定要注意,在初始化 MySQL8 之后有一个特点:它的连接处理方式改变了,MySQL8.0.17变化和其他的更不一样,有一个是在第一次启动的时候给一个随机的密码,而我们这个 MySQL8.0.17是我们初始化完数据库就会给一个随机的初始化的用户名密码,一定要记住,只有用这个用户才能登录到数据库里面,这样的设置方式比以前的安全多,以前我们装完数据库后。

默认的管理员是 root,密码是空,进去之后用户容易没有清空密码,容易泄露数据库,不安全。装完 MySQL 第一件事就应加一个密码,应用第三方程序,要新建用户并且定期修改密码。新版本就是如果密码忘记了就永远登录不了数据库了,所以一般代码有一个提示标记:A temporary passwword is generated for root@localhost:MSq.Kr-UKB<P表示其中本地随机给的密码为MSq.Kr-UKB<P,一定要记住!

注意:在初始化数据时,有一个初始秘密一要记下来,要通过个密码进行第一次登录。

[Server] A temporary password is generated for root@localhost: v:Mf<E8q0wlc(此为随机给的密码,每回密码不同)

 

二、初始化授权表

c.修改配置文件,并初始化授权表

#vi/etc/my.cnf

[mysqld]

datadir=/data/mysql

basedir=/user/local/mysql

socket=/tmp/mysqld.sock

#Disabling symbolic-links is recommended to prevent assorted security risks symbolic-links=0

# Settings user and group are ignored when systemd is used.

#If you need to run mysqld under a different user or group,

#customize your systemd unit file for mariadb according to the

#instructions in http://fedoraproject.org/wiki/Systemd

[mysald_safe]

log-error=/var/log/mariadb/mariadb.log

pid-file=lvar/run/mariadb/mariadb.pid

#

# include all files from the config directory

#

!includedir /etc/my.cnf.d

现在数据库有了,数据库管理程序也有了,还无法启动,还需要初始化授权表。

首先查看 mysql 默认在 etc 的 my.cnf 中的配置文件,输入命令:#vi /etc/my.cnf 后来修改添加其中的目录,其中必须有的几个目录修改:MySQL 的数据目录 datadir 改为/data/mysql在根目录下,添加基础目录  basedir=/user/local/mysql,socket 文件也需要指定,因为在其指定哪个 socket 启动时候会生成哪个 socket,别的软件比如PHP启动时也会通过sock连接到这个数据库,将其 socket 放到临时目录下,更改 socket 内容为socket=/tmp/mysqld.socket。其中 socket=/tmp/mysql.socket 写做 mysql 也可以。

MySQL 启动的错误日志会写入:log-error 中;进程管理写进 pid-file 中,这两个文件可以改也可以不改,但是权限一定要设置了,因为运行 MySQL 是 MySQL 用户在运行,而上面的两个文件是系统的权限,Linux 操作系统重启后两个目录就会消失,所以需要修改(在此先不做修改,等待之后课程出错再进行修改,以方便同学记忆),最后输入命令:wq!保存刚刚的操作。

d.创建并授权[mysald _safe]的两个选项目录和文件

保存后首先查看是否给进程文件和日志文件做了授权,输入指令:#vi /etc/my.cnf 和#cd /var/log/到目录下进行查看,发现没有目录所以要先创建这两个目录,再授予权限,执行以下命令:

# mkdir /var/log/mariadb(创建log目录文件)

# touch /var/log/mariadb/mariadb.log(创建日志文件)

# chown -R mysql:mysql /var/log/mariadb/(授权,改变所属关系)

# mkdir /var/run/mariadb/最好改个目录,重启这个目录会消失,就不能启动mysql(创建run目录文件)

# chown -R mysql:mysql /var/run/mariadb/

执行以上操作后,输入命令:#ll就可以查看创建完成后的目录。

 

三.启动、登录和关闭 MySQL

e.启动 MySQL 服务

完成授权目录后,就是启动 MySQL 数据库,启动命令为:/usr/local/mysal/bin/mysqld_safe --user=mysql &,启动失败后再去查找原因:目录是否创建,授权是否成功。

启动后就会将日志和进程写进我们之前授权的文件保存,同时启动用户要注意使用MySQL 用户,而不是 root 用户,因为之前的文件授权全都为 mysql 用户,最后MySQL 启动要在后台启动,否则一直会占用终端,所以要添加&表示后台启动。

用原本源代码的方式去使用和启动 mysql

/usr/local/mysal/bin/mysqld_safe --user=mysql &

最后要判断MySQL是否启动了,输入指令:#netstat -tnl查看端口3306是不是打开即可,打开证明之前的配置没问题。

l 回顾:

配置的过程首先把MySQL的宿主目录的归属关系变成 MySQL 用户,然后初始化数据库密码,一定要记住密码否则启动不了,然后修改配置文件,指定数据目录、基础目录、写日志的文件和进程文件等基础的。之后将日志授权表授权,然后开始启动MySQL 服务。

f.登录 MySQL

Mysql本身是不支持连接,但此时使用的是SSH本机连接是可以进行的,输入登录的命令:#/usr/local/mysal/bin/mysql -u root Enter password: v.Mf<E8qowlc

#/usr/local/mysal/bin/mysql -u root -p

(可直接在其后面输入密码,或者回车,提示下一行,输入密码)

Enter password: v.Mf<E8qowlc密码为需要记忆的随机密码)

之后进入MySQL的管理界面,在此可以任意输入操作命令相当于mysql命令的终端,但是此时还无法操作任何命令,如:输入指令:show databases(查看数据库的个数)会发现提示错误,原因是因为新版的MySQL第一次登录进来会让用户强制更改密码,更改之前的随机密码后才可以执行有效操作命令。

输入指令alter user root@'localhost' identified by "123456";更改 locathost 用户密码为123456,每条命令用分号结束。提示:Query OK,就可以进行任何像执行的命令。

mysql>

进入之后必须先更改密码才能操作

mysql>alter user root@'localhost' identified by "123456";

mysql>show databases;

mysql>use test;

mysql>show tables;

mysql>exit

比如查看 MySQL 一些基本的状态:mysql>\s;查看其中的版本号、操作系统、当前用户、当前版本、字符集、启动时使用的 socket 连接是什么等等,再比如:mysql>show databases;查看有多少数据库,mysql>user mysql和mysql>show tabases;进入到MySQL数据库查看有多少表,以及查看授权中的表:mysql>show tables;之后可以使用命令:select *from user\G查到用户表里面有多少记录,根目录的用户表的文件。

使用:mysql>desc user;就可以查看表的结构包含主机用户等等,同时如果只想要查找两列,就可以使用命令:select Host,User from user;将主机和用户从 usr 表中查找出来,最后使用 mysql>exit;就可以退出,同时要记住刚才修改的新密码。

g.关闭 MySQL 服务

关闭 mysql,最好别用 killall 方式,容易将写入的数据破坏。采用以下语句即可:

#/usx/local/mysql/bin/mysqladmin -uroot -p shutdown

Enter password:123456输入的新密码)

关闭之后,再输入:#netstat -tnl查看端口进程,就可以看到3306被成功关闭了。

最后要是再想启动MySQL重复之前的操作,再输入命令:/usr/local/mysal/bin/mysqld_safe --user=mysql &

后台启动即可。同样使用#netstat -tnl查看端口进程,就可以看到3306被成功启动。

具体的操作也可以用图形化的PHP之类的操作,但是MySQL是必备的技能,之后的如何操作、管理、设计再讲解。

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。 &nbsp; 相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情:&nbsp;https://www.aliyun.com/product/rds/mysql&nbsp;
相关文章
|
2月前
|
Ubuntu 关系型数据库 MySQL
MySQL源码编译安装
本文详细介绍了MySQL 8.0及8.4版本的源码编译安装全过程,涵盖用户创建、依赖安装、cmake配置、编译优化等步骤,并提供支持多Linux发行版的一键安装脚本,适用于定制化数据库部署需求。
327 4
MySQL源码编译安装
|
2月前
|
Ubuntu 关系型数据库 MySQL
MySQL二进制包安装
本文详细介绍了在多种Linux系统上通过二进制包安装MySQL 8.0和8.4版本的完整过程,涵盖用户创建、glibc版本匹配、程序解压、环境变量配置、初始化数据库及服务启动等步骤,并提供支持多发行版的一键安装脚本,助力高效部署MySQL环境。
321 4
MySQL二进制包安装
|
2月前
|
安全 关系型数据库 MySQL
MySQL包安装 -- SUSE系列(离线RPM包安装MySQL)
本文详细介绍在openSUSE系统上通过离线RPM包安装MySQL 8.0和8.4版本的完整步骤,包括下载地址、RPM包解压、GPG密钥导入、使用rpm或zypper命令安装及服务启动验证,涵盖初始密码获取与安全修改方法,适用于无网络环境下的MySQL部署。
408 3
MySQL包安装 -- SUSE系列(离线RPM包安装MySQL)
|
2月前
|
关系型数据库 MySQL Linux
MySQL包安装 -- SUSE系列(SUSE资源库安装MySQL)
本文介绍了在openSUSE系统上通过SUSE资源库安装MySQL 8.0和8.4版本的完整步骤,包括配置国内镜像源、安装MySQL服务、启动并验证运行状态,以及修改初始密码等操作,适用于希望在SUSE系列系统中快速部署MySQL的用户。
227 3
MySQL包安装 -- SUSE系列(SUSE资源库安装MySQL)
|
2月前
|
NoSQL 算法 Redis
【Docker】(3)学习Docker中 镜像与容器数据卷、映射关系!手把手带你安装 MySql主从同步 和 Redis三主三从集群!并且进行主从切换与扩容操作,还有分析 哈希分区 等知识点!
Union文件系统(UnionFS)是一种**分层、轻量级并且高性能的文件系统**,它支持对文件系统的修改作为一次提交来一层层的叠加,同时可以将不同目录挂载到同一个虚拟文件系统下(unite several directories into a single virtual filesystem) Union 文件系统是 Docker 镜像的基础。 镜像可以通过分层来进行继承,基于基础镜像(没有父镜像),可以制作各种具体的应用镜像。
505 5
|
3月前
|
安全 关系型数据库 MySQL
CentOS 7 yum 安装 MySQL教程
在CentOS 7上安装MySQL 8,其实流程很清晰。首先通过官方Yum仓库来安装服务,然后启动并设为开机自启。最重要的环节是首次安全设置:需要先从日志里找到临时密码来登录,再修改成你自己的密码,并为远程连接创建用户和授权。最后,也别忘了在服务器防火墙上放行3306端口,这样远程才能连上。
673 16
|
2月前
|
Ubuntu 关系型数据库 MySQL
MySQL包安装 -- Debian系列(离线DEB包安装MySQL)
本文详细介绍了在Ubuntu 24.04、22.04、20.04及Debian 12系统上,通过离线DEB包安装MySQL 8.0和8.4版本的完整步骤。涵盖下载地址、依赖处理、dpkg安装顺序、配置方法及服务启动验证,确保用户可顺利部署MySQL数据库。
970 0
MySQL包安装 -- Debian系列(离线DEB包安装MySQL)
|
2月前
|
运维 Ubuntu 关系型数据库
MySQL包安装 -- Debian系列(Apt资源库安装MySQL)
本文介绍了在Debian系列系统(如Ubuntu、Debian 11/12)中通过APT仓库安装MySQL 8.0和8.4版本的完整步骤,涵盖添加官方源、配置国内镜像、安装服务及初始化设置,并验证运行状态,适用于各类Linux运维场景。
847 0
MySQL包安装 -- Debian系列(Apt资源库安装MySQL)
|
2月前
|
Oracle 关系型数据库 MySQL
MySQL包安装 -- RHEL系列(离线RPM包安装MySQL)
本文详细介绍在Rocky、CentOS、AlmaLinux、openEuler等主流Linux系统上,通过离线RPM包安装MySQL 8.0和8.4版本的完整步骤,涵盖下载、依赖处理、rpm/yum安装、服务启动、密码设置等关键环节,适用于多种企业级环境部署需求。
726 0
MySQL包安装 -- RHEL系列(离线RPM包安装MySQL)
|
2月前
|
存储 关系型数据库 MySQL
MySQL介绍和MySQL包安装 -- RHEL系列(Yum资源库安装MySQL)
MySQL是一款开源关系型数据库,高性能、易用、跨平台,支持多种存储引擎,广泛应用于Web开发、企业级应用等领域。本教程介绍其特点、架构及在主流Linux系统中的安装配置方法。
580 0
MySQL介绍和MySQL包安装 -- RHEL系列(Yum资源库安装MySQL)

推荐镜像

更多