MySQL系列文章目录
在Linux上安装MYSQL数据库
前言
本人数据库小菜鸡,刚入坑MySQL不久,平时工作中会记录零零碎碎的知识,现在打算整合整合。也希望能够帮助到其他程序媛,如文章内任何不对的地方,欢迎指正~~~
一、查看Linux系统的可用空间大小
执行命令df 查看磁盘空间大小,显示格式为:文件系统 容量 已用 可用 已用% 挂载点,打算放在根目录/下,可以看到剩余空间78G充足,个人习惯安装软件前查看空间是否足够。
df -h
二、下载MySQL数据库
1.下载
下载地址:https://dev.mysql.com/downloads/mysql/5.7.html#downloads
这里下载社区版MySQL5.7,选择Linux-generic通用,选择64位,可根据个人情况下拉选择MySQL要安装的环境,不用环境的MySQL包不一样。
跳转的界面选择不登录,直接下载
我这里用MobaXterm工具连接Linux可以直接上传文件到Linux,如果是直接在Linux机器上执行下载,要切换到有命令权限的账号,通过wget 命令直接下载到本地,如下:
wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.36-linux-glibc2.12-x86_64.tar.gz
2.创建文件夹Mysql
执行cd命令跳转到根目录/,执行ls命令查看当前目录下的文件夹,执行mkdir创建目录Mysql,mkdir不带参数,默认新建的文件夹当前用户是所有者权限,别的用户只是读取,代码实例:
cd /
ls
mkdir Mysql
将MySQL安装包上传到新建的文件夹Mysql,如果是使用wget,先创建文件夹再运行wget就下载到当前目录,如果下到别的地方,想复制到自己创建的目录下,可以执行命令copy
copy 压缩包全名 /Mysql/
查看下载后的压缩包:
二、安装MySQL数据库
1. 解压缩文件
执行解压缩命令tar:
tar -xvf mysql-5.7.41-linux-glibc2.12-x86_64.tar.gz
解压缩完成,执行ls查看当前目录下的对象,可以看到解压缩后的文件夹
2. 移动解压缩的文件并重命名
此文件夹的内容是MySQL数据库,在后面会提到。登录mysql的用户最好不要采用root用户或带root权限,一般都是新创建一个用户。
用户组类似于用户的集合,可以理解为系统中很多账号权限一样,那么建一个用户组,统一放这些权限相同的用户信息,如果要修改这批用户的权限,更改用户组即可,详情可参考:https://blog.csdn.net/xiaofengdada/article/details/122294475
mv mysql-5.7.41-linux-glibc2.12-x86_64 /usr/local/mysql # mv 文件夹名 目标路径/更名后的文件名
groupadd mysql #创建用户组 mysql
useradd -r -g mysql mysql #用户组mysql下创建mysql用户
cat /etc/group #查看所有用户组
3. 创建数据目录并赋予权限
创建一个存放MySQL数据库数据的目录,存放数据表结构、数据表内容、数据索引等等,此处称数据目录。pwd命令查看当前所在路径,mkdir -p参数是能直接创建一个不存在的目录下的子目录,chown授权给用户mysql。
mkdir -p /data/mysql
chown mysql:mysql -R /data/mysql #
4. 配置my.cnf
Linux系统中的/etc目录下,包含了配置文件,服务、开机运行的脚本等信息。Linux操作系统运行时,会读取/etc目录的各种配置文件。
vim是编辑文件的命令,后面跟文件名,加上路径就可以编辑系统上别的目录下的文件。vi也是编辑文件夹的命令,两个差不多,但vim比vi好使点,可以无限制撤销,vim 是vi的升级版本,兼容vi的所有指令。my.cnf是mysql的配置文件。
vim /etc/my.cnf
按insert键进入文件的编辑模式,[mysqld_safe]部分注释(暂时没用到,懒得创建文件夹,先注释),[mysqld]修改文件内容:
port=3306 #端口号
user=mysql #用户名
basedir=/usr/local/mysql #刚刚那个数据库基础架构的目录
datadir=/data/mysql #存放数据信息的目录
socket=/tmp/mysql.sock #mysql的套接字文件,mysql以socket方式运行的sock文件位置
log-error=/data/mysql/mysql.err #错误日志的存放位置
pid-file=/data/mysql/mysql.pid #mysqld 进程的 pid ,pid 亦即 Process ID
#character config
character_set_server=utf8mb4 # 指定数据库字符集utf8
symbolic-links=0 #是否支持符号链接,即数据库或表可以存储在my.cnf中指定datadir之外的分区或目录,为0不开启
explicit_defaults_for_timestamp=true
配置文件中其他参数的意思,参考网址:https://www.bbsmax.com/A/GBJrrygZJ0/
编辑好后按esc退出编辑模式,按英文:wq,回车保存文件。
5. 初始化数据库
进入MySQL数据库的bin目录
cd /usr/local/mysql/bin/
初始化数据库:
./mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql/ --datadir=/data/mysql/ --user=mysql --initialize
打开mysql.error文件,初始化后最有一行最末尾数据库的初始密码,记下来,首次登录的时候使用,我这里打码了,如下所示:
5. 启动数据库服务并登录
mysql.server是一个 shell 脚本,被用来启动、停止、重启和查看mysql进程服务的。其中有一些选项没有明确指定的时候是有默认值,比如:basedir默认路径为/usr/local/mysql,所以上面解压缩以后把数据库相关文件放到了这个目录下。
将mysql.server服务放置到/etc/init.d/mysql中,代码如下:
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
启动数据库
service mysql start #启动数据库
ps -ef |grep mysql #查看数据库进程
service mysql stop #停止MySQL数据库服务
service mysql restart #重启MySQL数据库服务
不希望每次都到mysql的bin目录下使用mysql的命令则执行以下Linux命令,软链接一下,这样在系统任何路径下都能使用MySQL的命令登录:
ln -s /usr/local/mysql/bin/mysql /usr/bin
6. 修改root账号登录数据库的密码
mysql> SET PASSWORD = PASSWORD('root'); #修改当前用户root的登录密码,每个SQL语句后面以英文分号结尾
mysql> ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER; #修改root的密码不过期
mysql> FLUSH PRIVILEGES; #刷新权限
可以修改登录密码的策略
mysql> set global validate_password_policy=0; #修改密码策略长度要求
mysql> set global validate_password_length=4; #修改密码策略长度最低为4
mysql> \q #退出MySQL登录
7. 远程连接数据库报错
若使用MySQL workbench连接数据库提示“host ‘’ is not allowed to connect to this MYSQL server“,如下图:
修改一下root账号的访问权限
mysql> use mysql;
mysql> update user set host = '%' where user = 'root'; #root可在任何host访问,%可以改成其他指定IP地址,表示仅该IP可以访问
mysql> FLUSH PRIVILEGES; #刷新
三、数据库以及数据库相关文件的解释
1. 数据库介绍
这是四个MySQL 系统自带的数据库,查看数据库命令如下:
mysql> show databases;
数据库名 | 备注 |
---|---|
mysql | 存储了MySQL的用户账户和权限信息,一些存储过程、事件的定义信息,一些运行过程中产生的日志信息,一些帮助信息以及时区信息等 |
information_schema | 保存着MySQL服务器维护的所有其他数据库的信息,比如有哪些表、哪些视图、哪些触发器、哪些列、哪些索引。这些信息并不是真实的用户数据,而是一些描述性信息,有时候也称之为元数据 |
performance_schema | 保存MySQL服务器运行过程中的一些状态信息,可以用来监控 MySQL 服务的各类性能指标。包括统计最近执行了哪些语句,在执行过程的每个阶段都花费了多长时间,内存的使用情况等信息 |
sys | 通过视图的形式把information_schema和performance_schema结合起来,帮助系统管理员和开发人员监控 MySQL 的技术性能 |
查询默认的数据库引擎是InnoDB,加\G以列显示结果集,列很多的时候可以这样查看,比较方便,默认显示结果集是一行行显示结果:
mysql> show engines\G;
2. 查看配置文件中的文件–数据目录
cat /etc/my.cnf #cat显示指定文件的文件内容,没有vi那种跳转页面,会在命令行全部显示出来
查看数据文件,数据目录如下:
datadir=/data/mysql
文件名 | 备注 |
---|---|
auto.cnf | MySQL启动时,会自动从data_dir/auto.cnf 文件中获取server-uuid值,主从复制时会用到 |
.pem文件 | 用于ssl认证登陆 |
ib_buffer_pool | innodb buffer pool 预热 |
ibdata1 | 系统表空间,也叫作共享表空间,默认文件名为ibdata1。可以通过参数innodb_data_file_path设置文件名和文件大小 |
ib_logfile | 事务日志或redo日志,默认有两个文件,文件名分别是ib_logfile0和ib_logfile1 |
ibtmp1 | innodb临时表空间 |
mysql.err | mysql启动停止的过程会记录在这个文件内,一般数据库无法启动或者报错等等,都可以查看这个文件内容得到需要的信息 |
mysql.pid | MySQL的PID文件是指某一个MySQL服务器正在运行的标识文件,每个MySQL实例都会有一个PID文件 |
数据库同名文件夹 | 存放同名数据库的数据 |
数据目录存放具体表的数据、架构、索引等,不同的存储引擎会产生不同的文件。每个数据库都会产生一个同名文件夹,里面存放各自的数据,见上面蓝色显示,比如我们用命令创建一个数据库test
再次查看数据目录下,多了一个test的文件夹:
数据库里还没有数据,我们执行下面SQL创建一个表a,可以看到test文件夹里点多了a相关文件,.frm是表结构的文件,.ibd是表数据和索引的文件,不同存储引擎会生成不同后缀名的文件。
create table a (id int not null auto_increment primary key,name varchar(10) null)
3. 查看配置文件中的文件–basedir目录
cat /etc/my.cnf #cat显示指定文件的文件内容,没有vi那种跳转页面,会全部显示出来
查看数据文件,basedir目录如下,此处只介绍部分文件,其他可自行再查阅:
basedir=/usr/local/mysql
文件名 | 备注 |
---|---|
bin | 存储可执行文件,mysql自带客户端,mysql服务端 |
docs | 存放一些文档 |
include | 存放包含的头文件 |
lib | 存储库文件 |
my.cnf | 配置文件 |
share | 错误信息和字符集文件等 |
basedir 类似于数据库安装的位置
datadir 存放数据库的数据
总结
以上就是MySQL 5.7 数据库的安装步骤,,本文仅仅简单介绍了pandas的使用,而pandas提供了大量能使我们快速便捷地处理数据的函数和方法。