百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 优雅编程 > 正文

6Linux网络服务之Mysql数据库服务

sinye56 2024-11-18 16:42 7 浏览 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

  1. 源码安装需要有开发环境

:rpm -q ncurses* //确认编译的开发环境工具有没有安装

:yum install ncurses* //安装开发工具的编译环境

2 源码编译及安装

1)创建运行用户

为了加强数据库服务的权限控制,建议使用专门的运行用户,用户不需要登录系统,可以不创建宿主文件夹

:useradd -M -u 49 -s /sbin/nologin mysql

  1. 解包

将下载的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/

  1. 配置

企业网站平台中,可能会用到多种字符集的网页,相应的数据库系统也应该支持不同的字符集编码,在配置过程中,可以将默认使用的字符集设置为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

  1. 编译

:make //编译

6)安装

:make install //安装

3 安装后的其他调整

  1. 建立配置文件

在mysql源码目录中的support-files文件下,提供了适合不同负责数据库的样本配置文件。如果不确定数据库系统的应用规模,一般选择my-medium.cnf文件即可。该文件能够满足大多数企业中、的中等应用需求。根据样例建立Mysql系统中的/etc/my.cnt配置文件

:cp support-files/my-medium.cnf /etc/my.cnf //建立配置文件

  1. 初始化数据库

为了能够正常使用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/

  1. 优化执行路径、程序库路径

为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

  1. 启动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命令工具

  1. 登录到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服务器中,支持运行多个库,每个库相当于一个容器,其中存放着很多个表,表中的每一行都包含一条数据记录

  1. 查看数据库列表信息

默认有三个库,其中mysql库中包含了用户认证相关的表

SHOW DATABASES;

  1. 查看数据库中的数据表信息

在操作前,先使用“use 数据库名”语句切换到指定库,数据库的数据文件默认存放在/usr/local/mysql/var/目录下。每一个数据库对应一个子目录,用于存储数据表文件,每一个数据表对应三个文件,后缀名分别为“.frm”、“.MYD”、“MYI”

USE mysql;

SHOW TABLES;

  1. 显示数据表的结构

使用“DESCRIBE [数据库名.]表名”的语句对指定表进行查看

DESCRIBE USER; 或者

DESCRIBE mysql.user;

4 数据库的创建和删除

  1. 创建新的数据库

使用“CREATE DATABASE 数据库名”语句创建新库,刚创建的数据库是空的,不包含任何表,在/usr/local/mysql/var/目录下会在动生成一个与库名相同的空文件夹

create datebase newname;

  1. 创建新的数据表

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 管理表中的数据记录

  1. 插入数据记录

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’)); //“(”前面都有空格

  1. 查询数据记录

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; //查看所有字段所有数据记录

  1. 修改数据记录

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; //刷新用户授权信息

  1. 删除数据记录

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 数据库的用户授权

  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';

  1. 查看权限

SHOW GRANTS FOR 用户名@域名或IP

Show grants for ‘mazi’@’192.168.1.100’;

  1. 撤销权限

REVOKE 权限列表 ON 数据库名.表名 FROM 用户名@域名或IP

revoke all on newname.* from 'mazi'@'localhost'; //取消用户所有权限,可以登录mysql服务器

2 数据库的备份与恢复

  1. 备份数据库

方法1:可直接备份目录 /usr/local/mysql/var/

tar -jcf mysql.tar.bz2 /usr/local/mysql/var/

方法2:使用专用备份工具 mysqldump

mysqldump -u 用户名 -p [密码] [选项] [数据库名] [表名] > /备份路径/备份文件名

  1. 导出指定库的部分表(备份mysql库中的user表)

mysqldump -u root -p mysql user > mysql-user.sql

  1. 导出一个或多个完整的库(备份auth这个库)

mysqldump -u root -p --database auth > auth.sql

  1. 备份所有的库(--opts可以优化执行速度)

mysqldump -u root -p --opt --all-databases > all-data.sql

D)查看备份文件内容

通过mysqldumo工具导出的sql脚本是文本文件,其中‘/*……*/’或‘——’开头的是注释

grep -v "^--" all-data.aql | grep -v "^/" | grep -v "^$

  1. 恢复数据库

mysql -u root -p [数据库名] < /备份路径/备份文件名

mysql -u root -p test < mysql-user.sql //恢复表到现有库中

mysql -u root -p < all-data.sql //恢复数据库

相关推荐

程序员:JDK的安装与配置(完整版)_jdk的安装方法

对于Java程序员来说,jdk是必不陌生的一个词。但怎么安装配置jdk,对新手来说确实头疼的一件事情。我这里以jdk10为例,详细的说明讲解了jdk的安装和配置,如果有不明白的小伙伴可以评论区留言哦下...

Linux中安装jdk并配置环境变量_linux jdk安装教程及环境变量配置

一、通过连接工具登录到Linux(我这里使用的Centos7.6版本)服务器连接工具有很多我就不一一介绍了今天使用比较常用的XShell工具登录成功如下:二、上传jdk安装包到Linux服务器jdk...

麒麟系统安装JAVA JDK教程_麒麟系统配置jdk

检查检查系统是否自带java在麒麟系统桌面空白处,右键“在终端打开”,打开shell对话框输入:java–version查看是否自带java及版本如图所示,系统自带OpenJDK,要先卸载自带JDK...

学习笔记-Linux JDK - 安装&amp;配置

前提条件#检查是否存在JDKrpm-qa|grepjava#删除现存JDKyum-yremovejava*安装OracleJDK不分系统#进入安装文件目...

Linux新手入门系列:Linux下jdk安装配置

本系列文章是把作者刚接触和学习Linux时候的实操记录分享出来,内容主要包括Linux入门的一些理论概念知识、Web程序、mysql数据库的简单安装部署,希望能够帮到一些初学者,少走一些弯路。注意:L...

测试员必备:Linux下安装JDK 1.8你必须知道的那些事

1.简介在Oracle收购Sun后,Java的一系列产品就被整合到Oracle官网中,打开官网乍眼一看也不知道去哪里下载,还得一个一个的摸索尝试,而且网上大多数都是一些Oracle收购Sun前,或者就...

Linux 下安装JDK17_linux 安装jdk1.8 yum

一、安装环境操作系统:JDK版本:17二、安装步骤第一步:下载安装包下载Linux环境下的jdk1.8,请去官网(https://www.oracle.com/java/technologies/do...

在Ubuntu系统中安装JDK 17并配置环境变量教程

在Ubuntu系统上安装JDK17并配置环境变量是Java开发环境搭建的重要步骤。JDK17是Oracle提供的长期支持版本,广泛用于开发Java应用程序。以下是详细的步骤,帮助你在Ubuntu系...

如何在 Linux 上安装 Java_linux安装java的步骤

在桌面上拥抱Java应用程序,然后在所有桌面上运行它们。--SethKenlon(作者)无论你运行的是哪种操作系统,通常都有几种安装应用程序的方法。有时你可能会在应用程序商店中找到一个应用程序...

Windows和Linux环境下的JDK安装教程

JavaDevelopmentKit(简称JDK),是Java开发的核心工具包,提供了Java应用程序的编译、运行和开发所需的各类工具和类库。它包括了JRE(JavaRuntimeEnviro...

linux安装jdk_linux安装jdk软连接

JDK是啥就不用多介绍了哈,外行的人也不会进来看我的博文。依然记得读大学那会,第一次实验课就是在机房安装jdk,编写HelloWorld程序。时光飞逝啊,一下过了十多年了,挣了不少钱,买了跑车,娶了富...

linux安装jdk,全局配置,不同用户不同jdk

jdk1.8安装包链接:https://pan.baidu.com/s/14qBrh6ZpLK04QS8ogCepwg提取码:09zs上传文件解压tar-zxvfjdk-8u152-linux-...

运维大神教你在linux下安装jdk8_linux安装jdk1.7

1.到官网下载适合自己机器的版本。楼主下载的是jdk-8u66-linux-i586.tar.gzhttp://www.oracle.com/technetwork/java/javase/downl...

window和linux安装JDK1.8_linux 安装jdk1.8.tar

Windows安装JDK1.8的步骤:步骤1:下载JDK打开浏览器,找到JDK下载页面https://d.injdk.cn/download/oraclejdk/8在页面中找到并点击“下载...

最全的linux下安装JavaJDK的教程(图文详解)不会安装你来打我?

默认已经有了linux服务器,且有root账号首先检查一下是否已经安装过java的jdk任意位置输入命令:whichjava像我这个已经安装过了,就会提示在哪个位置,你的肯定是找不到。一般我们在...

取消回复欢迎 发表评论: