6Linux网络服务之Mysql数据库服务
sinye56 2024-11-18 16:42 2 浏览 0 评论
MySQL数据库系统
一 MySQL简介
提供更丰富更强大的Web应用功能
参考站点:
二 MySQL服务基础
1 MySQL是开源的关系型数据库服务器软件
目前由Oracle公司开发和维护
官方站点:http://dev.mysql.com/downloads
2 MySQL的特点
多线程、多用户
基于C/S(客户端/服务器)架构
简单易用、查询速度快
安全可靠
三 MySQL的编译安装
1 准备工作
1)为了避免发生端口冲突,程序冲突,建议先检查mysql软件的安装情况,确认没有使用RPM方式安装的mysql-server、mysql软件包,否则建议将其卸载。
:rpm -q mysql-server mysql //确认没有使用RPM方式安装mysql-server、mysql
- 源码安装需要有开发环境
:rpm -q ncurses* //确认编译的开发环境工具有没有安装
:yum install ncurses* //安装开发工具的编译环境
2 源码编译及安装
1)创建运行用户
为了加强数据库服务的权限控制,建议使用专门的运行用户,用户不需要登录系统,可以不创建宿主文件夹
:useradd -M -u 49 -s /sbin/nologin mysql
- 解包
将下载的mysql源码安装包解压,释放到/usr/src/目录下,并切换到源码目录
:mount /dev/cdrom /media //挂载安装包
:cd /media/
:tar zxf mysql-5.1.55.tar.gz -C /usr/src/ //解包
:cd /usr/src/mysql-5.1.55/
- 配置
企业网站平台中,可能会用到多种字符集的网页,相应的数据库系统也应该支持不同的字符集编码,在配置过程中,可以将默认使用的字符集设置为utf8,并添加对gbk、gb2312等其他字符集的支持
:./configure --prefix=/usr/local/mysql --with-charset=utf8 --with-collation=utf8_general_ci --with-extra-charsets=gbk,gb2312 //配置
上述命令中各选项含义如下
--prefix 指定将mysql数据库程序安装到哪个目录,如/usr/src/mysql
--with-charset 指定默认使用的字符集编码,应与校队规则相对应,如utf8
--with-collation 指定默认使用的字符集校队规则
--with-extra-charset 指定额外支持的其他字符集编码
4)调整字符集编码
额外的字符集编码需要进行小的调整才能被完整的支持
:vim include/config.h //添加字符集的支持定义
..............
#define HAVE_CHARSET_gb2312 1
#define HAVE_CHARSET_gbk 1
- 编译
:make //编译
6)安装
:make install //安装
3 安装后的其他调整
- 建立配置文件
在mysql源码目录中的support-files文件下,提供了适合不同负责数据库的样本配置文件。如果不确定数据库系统的应用规模,一般选择my-medium.cnf文件即可。该文件能够满足大多数企业中、的中等应用需求。根据样例建立Mysql系统中的/etc/my.cnt配置文件
:cp support-files/my-medium.cnf /etc/my.cnf //建立配置文件
- 初始化数据库
为了能够正常使用Mysql数据库系统,应以运行用户mysql的身份执行初始化任务,以便建立用户授权库、表、以及test测试库等。初始化脚本mysql_install_db位于安装目录下的bin文件夹中,此外还应该调整位于存放数据库内容的文件夹归属,以便mysql用户有权限对其进行读写操作
:cd /usr/local/mysql/bin/
: ./mysql_install_db --user=mysql //初始化数据库
: chown -R root:mysql /usr/local/mysql/
: chown -R mysql /usr/local/mysql/var/
- 优化执行路径、程序库路径
为Mysql系统的各种执行程序添加符号链接,以方便其使用。另外建议为Mysql的库文件、头文件也添加符号链接,便于在安装其他用的到的这些文件的软件包时能自动搜索
:ln -s /usr/local/mysql/bin/* /usr/local/bin/ 链接很重要,否则登录时会出问题
:ln -s /usr/local/mysql/lib/mysql/* /usr/lib/
:ln -s /usr/local/mysql/include/mysql/* /usr/include/
4)添加为系统服务
以便通过chkconfig进行管理,将添加mysql为系统服务,这样以后可以使用service工具来控制Mysql数据库服务了
cd /usr/src/mysql-5.1.55/
cp support-files/mysql.server /etc/rc.d/init.d/mysqld
chmod a+x /etc/rc.d/init.d/mysqld
chkconfig --add mysqld
- 启动mysqld服务,并查看运行状态
:/etc/init.d/mysqld start 启动
:/etc/init.d/mysqld status 查看运行状态
::netstat -anpt | grep mysqld 查看TCP 3306端口号
4 访问Mysql数据库
Mysql数据库系统也是一个典型的C/S架构应用,需要访问Mysql数据库需要使用专门的客户端软件。在windows平台可以使用Mysql Manager、Mysql Front、Navicat Lite等软件;而在Linux系统中,最简单、最易用的Mysql客户端软件是其自带的mysql命令工具
- 登录到mysql服务器
mysql -u 用户名 [-p]
提示符:mysql>
管理员账号为root,密码为空
: mysql -u root //空密码登录
: mysqladmin -u root password "123456” //设置密码
: mysql -u root -p //使用密码登录
::mysql -h 192.168.1.100 -u root -p //使用-h来指定登录其他服务器
2) 退出MySQL操作环境
:exit 或
:quit
四 数据库的基本管理
1 Mysql操作语句
成功登陆后会进入到提示符为“mysql>”的数据库操作环境,用户可以输入各种操作语句进行管理,每一条操作语句以分号表示结束,输入时可不区分大小写
2 查看数据库服务的日志文件
SHOW MASTER LOG;
3 查看数据库结构
Mysql是一套数据库管理系统,在每一台Mysql服务器中,支持运行多个库,每个库相当于一个容器,其中存放着很多个表,表中的每一行都包含一条数据记录
- 查看数据库列表信息
默认有三个库,其中mysql库中包含了用户认证相关的表
SHOW DATABASES;
- 查看数据库中的数据表信息
在操作前,先使用“use 数据库名”语句切换到指定库,数据库的数据文件默认存放在/usr/local/mysql/var/目录下。每一个数据库对应一个子目录,用于存储数据表文件,每一个数据表对应三个文件,后缀名分别为“.frm”、“.MYD”、“MYI”
USE mysql;
SHOW TABLES;
- 显示数据表的结构
使用“DESCRIBE [数据库名.]表名”的语句对指定表进行查看
DESCRIBE USER; 或者
DESCRIBE mysql.user;
4 数据库的创建和删除
- 创建新的数据库
使用“CREATE DATABASE 数据库名”语句创建新库,刚创建的数据库是空的,不包含任何表,在/usr/local/mysql/var/目录下会在动生成一个与库名相同的空文件夹
create datebase newname;
- 创建新的数据表
CREATE TABLE 表名 (字段1名称 类型,字段2名称 类型......,PRIMARY KEY (主键名));
user newname
create table users (user_name char(16) not null, user_passwd char(48) default ‘’, primary key (user_name)); //在name库中创建名为users的用户验证表
3)删除指定的数据表
DROP TABLE [数据库名.]表名
drop table newname users;
4)删除指定的数据库
DROP DATABASE 数据库名
drop database newname;
5 管理表中的数据记录
- 插入数据记录
INSERT INTO 表名(字段1, 字段2, ……) VALUES (字段1的值, 字段2的值, ……)
如果这条记录完整的包含所有字段值,则可以省略指定字段的部分
use newname;
insert into users (user_name,user_passwd) values (‘zhangsan’,password (‘123456’));
Insert into users values (‘lisi’,password (‘123456’)); //“(”前面都有空格
- 查询数据记录
SELECT 字段名1,字段名2 …… FROM 表名 WHERE 条件表达式
表示所有字段时可以使用通配符“*”,若要列出所有数据记录,则可以省略where条件句子
SELECT user_name,user_passwd FROM newname.users where user_name= 'lisi';
select user_name,user_passwd from newname.users; //查看指定字段所有数据记录
select * from newname.users; //查看所有字段所有数据记录
- 修改数据记录
UPDATE 表名 SET 字段名1=值1[,字段名2=值2] WHERE 条件表达式
UPDATE newname.users SET user_passwd=PASSWORD('') WHERE user_name='lisi';
在Mysql数据库服务器中,用于访问数据库的各种用户信息都保存在mysql库的user表中,可以直接修改其中的数据记录来修改用户密码
update mysql.user set password=password ('456789') where user='root'; //修改root密码
flush privileges; //刷新用户授权信息
- 删除数据记录
DELETE FROM 表名 WHERE 条件表达式
delete from newname.users; //删除表中所有数据记录
delete from newname.users where user_name=’lisi’; //删除lisi的数据记录
在Mysql数据库服务器中,默认添加了从本机访问数据库的空用户,基于安全性考虑,应该删除这些空用户
select user,host,password from mysql.user where user=''; //查看空用户
delete from mysql.user where user=''; //删除空用户
五 维护Mysql数据库
1 数据库的用户授权
- 设置用户权限(用户不存在时,则新建用户)
GRANT 权限列表 ON 数据库名.表名 TO 用户名@来源地址 [ IDENTIFIED BY ‘密码’ ]
权限列表:用于列出授权使用的各种数据库操作,以逗号分隔。如select,insert,update等,使用all表示所有权限
库名.表名:指定授权操作的库和表的名称,其中可以使用通配符来表示所有库或指定库中的所有表。如newname.*
用户@来源地址:用于指定客户名称和允许访问的客户机地址,即谁能链接,能从哪里链接,来源地址可以是域名、IP、还可以使用%,表示某个区域或网段内的所有地址。如%.benet.com、192.168.1.%等
IDENTIFIED BY:若新建用户时,省略此项,则用户密码为空
执行以下命令创建对表有查询权限的名为mazi,密码为123456的用户,记录会保存到mysql库的user、db、host、tables_priv等相关表中,无需刷新
grant select on newname.* to 'mazi'@'localhost' identified by '123456';
- 查看权限
SHOW GRANTS FOR 用户名@域名或IP
Show grants for ‘mazi’@’192.168.1.100’;
- 撤销权限
REVOKE 权限列表 ON 数据库名.表名 FROM 用户名@域名或IP
revoke all on newname.* from 'mazi'@'localhost'; //取消用户所有权限,可以登录mysql服务器
2 数据库的备份与恢复
- 备份数据库
方法1:可直接备份目录 /usr/local/mysql/var/
tar -jcf mysql.tar.bz2 /usr/local/mysql/var/
方法2:使用专用备份工具 mysqldump
mysqldump -u 用户名 -p [密码] [选项] [数据库名] [表名] > /备份路径/备份文件名
- 导出指定库的部分表(备份mysql库中的user表)
mysqldump -u root -p mysql user > mysql-user.sql
- 导出一个或多个完整的库(备份auth这个库)
mysqldump -u root -p --database auth > auth.sql
- 备份所有的库(--opts可以优化执行速度)
mysqldump -u root -p --opt --all-databases > all-data.sql
D)查看备份文件内容
通过mysqldumo工具导出的sql脚本是文本文件,其中‘/*……*/’或‘——’开头的是注释
grep -v "^--" all-data.aql | grep -v "^/" | grep -v "^$
- 恢复数据库
mysql -u root -p [数据库名] < /备份路径/备份文件名
mysql -u root -p test < mysql-user.sql //恢复表到现有库中
mysql -u root -p < all-data.sql //恢复数据库
- 上一篇:Linux安装达梦8数据库
- 下一篇:MySQL5.7数据库安装与远程连接
相关推荐
- Linux两种光驱自动挂载的方法
-
环境:CentOS6.4西昆云服务器方式一修改fstab文件/etc/fstab是系统保存文件系统信息?静态文件,每一行描述一个文件系统;系统每次启动会读取此文件信息以确定需要挂载哪些文件系统。参...
- linux系统运维,挂载和分区概念太难?在虚机下操作一次全掌握
-
虚拟机的好处就是可以模拟和学习生产环境的一切操作,假如我们还不熟悉磁盘操作,那先在虚机环境下多操作几次。这次来练习下硬盘扩容操作。虚拟机环境:centos8vm11linux设备命名规则在linux中...
- Linux 挂载 NFS 外部存储 (mount 和 /etc/fstab)
-
mount:手工挂载,下次重启需再重新挂载,操作命令:mount-tnfs-ooptionsserver:/remote/export/local/directory上面命令中,本地目录...
- 在Linux中如何设置自动挂载特定文件系统(示例)
-
Linux...
- Linux环境中的绑定挂载(bind mount)
-
简介:Linux中的mount命令是一个特殊的指令,主要用于挂载文件目录。而绑定挂载(bindmount)命令更为特别。mount的bind选项将第一个目录克隆到第二个。一个目录中的改变将会在...
- Linux挂载CIFS共享 临时挂载 1. 首先
-
如何解决服务器存储空间不足的问题?大家好,欢迎回来。在上一期视频中,我为大家介绍了如何利用Linux挂载来扩容服务器存储空间。这一期视频,我将以Linux为例,教大家如何进行扩容。群辉使用的是Linu...
- Linux 硬盘挂载(服务器重启自动挂载)
-
1、先查看目前机器上有几块硬盘,及已挂载磁盘:fdisk-l能够查看到当前主机上已连接上的磁盘,以及已经分割的磁盘分区。(下面以/dev/vdb磁盘进行分区、挂载为例,挂载点设置为/data)df...
- linux 挂载磁盘
-
在Linux中挂载硬盘的步骤如下:...
- 笨小猪教您Linux磁盘挂载
-
本教程针对Linux系统比较熟悉或者想学习Linux基础的用户朋友,本教程操作起来比较傻瓜式,跟着步骤就会操作,本文使用的工具是XShell同时多多注意空格(文中会有提示)。【问答】什么是磁盘挂载?答...
- Linux 磁盘挂载和docker安装命令
-
本篇给大家介绍Linux磁盘挂载和docker安装的相关内容,Linux服务器的操作是一个手熟的过程,一些不常用的命令隔断时间就忘记了,熟话说好记性不如烂笔头,还需在平时的工作中多练习记录。...
- Linux设置开机自动挂载分区
-
有时候,我们在安装完Linux系统之后,可能在使用过程中添加硬盘或者分区进行使用,这时候就需要手动把磁盘分区挂载到某个路径,但是开机之后就会消失,需要重新挂载,非常麻烦,那么我们应该如何设置开机自动挂...
- 在linux挂载一个新硬盘的完整步骤
-
以下是在Linux中挂载新原始磁盘的完整步骤,包括分区、创建文件系统以及使用UUID在/etc/fstab中启动时挂载磁盘:将新的原始磁盘连接到Linux系统并打开电源。运行以下命令,...
- Linux系统如何挂载exFAT分区
-
简介:Linux系统中不能像Windows系统那样自动识别加载新设备,需要手动识别,手动加载。Linux中一切皆文件。文件通过一个很大的文件树来组织,文件树的根目录是:/,从根目开始录逐级展开。这些文...
- Linux系统挂载硬盘
-
fdisk-l查看可挂载的磁盘都有哪些df-h查看已经挂载的磁盘...
- WSL2发布,如何在Win10中挂载Linux文件系统
-
WSL2是最新版本的架构,它为Windows子系统提供支持,使其能够在Windows上运行ELF64Linux二进制文件。通过最近的更新,它允许使用Linux文件系统访问存储在硬盘中的文件。如果你...
你 发表评论:
欢迎- 一周热门
- 最近发表
- 标签列表
-
- oracle忘记用户名密码 (59)
- oracle11gr2安装教程 (55)
- mybatis调用oracle存储过程 (67)
- oracle spool的用法 (57)
- oracle asm 磁盘管理 (67)
- 前端 设计模式 (64)
- 前端面试vue (56)
- linux格式化 (55)
- linux图形界面 (62)
- linux文件压缩 (75)
- Linux设置权限 (53)
- linux服务器配置 (62)
- mysql安装linux (71)
- linux启动命令 (59)
- 查看linux磁盘 (72)
- linux用户组 (74)
- linux多线程 (70)
- linux设备驱动 (53)
- linux自启动 (59)
- linux网络命令 (55)
- linux传文件 (60)
- linux打包文件 (58)
- linux查看数据库 (61)
- linux获取ip (64)
- 关闭防火墙linux (53)