MySQL数据库二进制安装初始化报错

MySQL数据库二进制安装初始化报错,第1张

启动这个试试看

/mysql/bin/mysqld_safe &

试试看我整理的笔记

1. 安装mysql

mysql-5.0.41-linux-i686-glibc23.tar.gz 由于mysql是二进制包。所以还是比较方便的。

直接解压。然后移动。

mv mysql-5.0.41-linux-x86_64-glibc23 /usr/local/mysql

cd /usr/local/mysql

groupadd mysql

useradd -g mysql mysql

chown -R mysql .

chgrp -R mysql .

chown -R root .

./scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql --datadir=/home/www/mysql/data

cp /usr/local/mysql/support-files/my-huge.cnf /etc/my.cnf

cp /usr/local/mysql/support-files/mysql.server /etc/rc.d/init.d/mysqld

chmod 755 /etc/rc.d/init.d/mysqld

chkconfig –add mysqld

chkconfig --level 3 mysqld on

mv /usr/local/mysql/data /home/www/mysql

chown -R mysql:mysql /home/www/mysql

编辑/etc/my.cnf

在 [mysqld] 段增加

datadir = /home/www/mysql

skip-innodb

wait-timeout = 10

max_connections = 512

max_connect_errors = 10000000

在 [mysqld] 段修改

max_allowed_packet = 16M

thread_cache_size = CPU个数*2

将 log-bin 注释

service mysqld start

bin/mysqladmin -u root -p

背景

MySQL 一直以来都有 TEXT、BLOB 等类型用来存储图片、视频等大对象信息。比如一张图片,随便一张都 5M 以上。视频也是,随便一部视频就是 2G 以上。

假设用 MySQL 来存放电影视频等信息,一部是 2G,那么存储 1000 部就是 2TB,2TB 也就是 1000 条记录而已,但是对数据库性能来说,不仅仅是看记录数量,更主要的还得看占用磁盘空间大小。空间大了,所有以前的经验啥的都失效了。

所以一般来说存放这类信息,也就是存储他们的存放路径,至于文件本身存放在哪里,那这就不是数据库考虑的范畴了。数据库只关心怎么来的快,怎么来的小。

举例

虽然不推荐 MySQL 这样做,但是也得知道 MySQL 该怎么做才行,做到心里有数。比如下面一张微信图片,大概 5M 的样子。

root@ytt:/var/lib/mysql-files# ls -sihl 微信图片_20190711095019.jpg274501 5.4M -rw-r--r-- 1 root root 5.4M Jul 11 07:17 微信图片_20190711095019.jpg

拷贝 100 份这样的图片来测试

root@ytt:/var/lib/mysql-files# for i in `seq 1 100`do cp 微信图片_20190711095019.jpg "$i".jpgdone

root@ytt:/var/lib/mysql-files# ls

100.jpg   17.jpg  25.jpg  33.jpg  41.jpg  4.jpg   58.jpg  66.jpg  74.jpg  82.jpg  90.jpg  99.jpg  f8.tsv

10.jpg    18.jpg  26.jpg  34.jpg  42.jpg  50.jpg  59.jpg  67.jpg  75.jpg  83.jpg  91.jpg  9.jpg   微信图片_20190711095019.jpg

1111.jpg  19.jpg  27.jpg  35.jpg  43.jpg  51.jpg  5.jpg   68.jpg  76.jpg  84.jpg  92.jpg  f1.tsv

11.jpg    1.jpg   28.jpg  36.jpg  44.jpg  52.jpg  60.jpg  69.jpg  77.jpg  85.jpg  93.jpg  f2.tsv

12.jpg    20.jpg  29.jpg  37.jpg  45.jpg  53.jpg  61.jpg  6.jpg   78.jpg  86.jpg  94.jpg  f3.tsv

13.jpg    21.jpg  2.jpg   38.jpg  46.jpg  54.jpg  62.jpg  70.jpg  79.jpg  87.jpg  95.jpg  f4.tsv

14.jpg    22.jpg  30.jpg  39.jpg  47.jpg  55.jpg  63.jpg  71.jpg  7.jpg   88.jpg  96.jpg  f5.tsv

15.jpg    23.jpg  31.jpg  3.jpg   48.jpg  56.jpg  64.jpg  72.jpg  80.jpg  89.jpg  97.jpg  f6.tsv

16.jpg    24.jpg  32.jpg  40.jpg  49.jpg  57.jpg  65.jpg  73.jpg  81.jpg  8.jpg   98.jpg  f7.tsv

我们建三张表,分别用 LONGBLOB、LONGTEXT 和 VARCHAR 来存储这些图片信息

mysql>show create table tt_image1G

*************************** 1. row ***************************

Table: tt_image1

Create Table: CREATE TABLE `tt_image1` (

`id` int(11) NOT NULL AUTO_INCREMENT,

`image_file` longblob,

PRIMARY KEY (`id`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci

1 row in set (0.00 sec)

mysql>show create table tt_image2G

*************************** 1. row ***************************

Table: tt_image2

Create Table: CREATE TABLE `tt_image2` (

`id` int(11) NOT NULL AUTO_INCREMENT,

`image_file` longtext,

PRIMARY KEY (`id`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci

1 row in set (0.00 sec)

mysql>show create table tt_image3G

*************************** 1. row ***************************

Table: tt_image3

Create Table: CREATE TABLE `tt_image3` (

`id` int(11) NOT NULL AUTO_INCREMENT,

`image_file` varchar(100) DEFAULT NULL,

PRIMARY KEY (`id`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_0900_ai_ci

1 row in set (0.00 sec)

我们来给三张表插入 100 张图片(插入前,建议把 max_allowed_packet 设置到最大)

tt_image1

root@ytt:/var/lib/mysql-files# for i in `seq 1 100`

do mysql -S /var/run/mysqld/mysqld.sock -e "insert into ytt.tt_image1(image_file)

values (load_file('/var/lib/mysql-files/$i.jpg'))"done

tt_image2

root@ytt:/var/lib/mysql-files# for i in `seq 1 100`

do mysql -S /var/run/mysqld/mysqld.sock -e "insert into ytt.tt_image2(image_file)

values (hex(load_file('/var/lib/mysql-files/$i.jpg')))"done

tt_image3

root@ytt:/var/lib/mysql-files# aa='begin'for i in `seq 1 100`

do aa=$aa"insert into ytt.tt_image3(image_file) values

('/var/lib/mysql-files/$i.jpg')"

doneaa=$aa'commit'mysql -S /var/run/mysqld/mysqld.sock -e "`echo $aa`"

检查下三张表记录数

mysql>select 'tt_image1' as name ,count(*) from tt_image1 union allselect 'tt_image2',count(*) from tt_image2 union all select 'tt_image3', count(*) from tt_image3+-----------+----------+| name      | count(*) |+-----------+----------+| tt_image1 |      100 || tt_image2 |      100 || tt_image3 |      100 |+-----------+----------+3 rows in set (0.00 sec)

看下文件大小,可以看到实际大小排名,LONGTEXT 字段存储的最大,LONGBLOB 字段缩小到一半,最小的是存储图片路径的表 tt_image3。所以这里从存储空间来看,存放路径最占优势。

root@ytt:/var/lib/mysql/ytt# ls -silhS tt_image*274603 1.1G -rw-r----- 1 mysql mysql 1.1G Jul 11 07:27 tt_image2.ibd274602 545M -rw-r----- 1 mysql mysql 544M Jul 11 07:26 tt_image1.ibd274605  80K -rw-r----- 1 mysql mysql 112K Jul 11 07:27 tt_image3.ibd

那么怎么把图片取出来呢?

tt_image3 肯定是最容易的

mysql>select * from tt_image3+----+----------------------------+| id | image_file                 |+----+----------------------------+|  1 | /var/lib/mysql-files/1.jpg |+----+----------------------------+...100 rows in set (0.00 sec)

tt_image1 直接导出来二进制文件即可,下面我写了个存储过程,导出所有图片。

mysql>DELIMITER $$mysql>USE `ytt`$$mysql>DROP PROCEDURE IF EXISTS `sp_get_image`$$mysql>CREATE DEFINER=`ytt`@`localhost` PROCEDURE `sp_get_image`()mysql>BEGIN      DECLARE i,cnt INT DEFAULT 0     SELECT COUNT(*) FROM tt_image1 WHERE 1 INTO cnt     WHILE i <cnt DO        SET @stmt = CONCAT('select image_file from tt_image1  limit ',i,',1 into dumpfile ''/var/lib/mysql-files/image',i,'.jpg''')       PREPARE s1 FROM @stmt       EXECUTE s1       DROP PREPARE s1     SET i = i + 1     END WHILE     END$$mysql>DELIMITER mysql>call sp_get_image

tt_image2 类似,把 select 语句里 image_file 变为 unhex(image_file) 即可。

总结

这里我举了个用 MySQL 来存放图片的例子,总的来说有以下三点:

占用磁盘空间大(这样会带来各种各样的功能与性能问题,比如备份,写入,读取 *** 作等)

使用不易

还是推荐用文件路径来代替实际的文件内容存放

FROM student,course,student_course

WHERE student.sno=student_course.sno

3.将各系学生人数,平均年龄定义为视图V_NUM_AVG

4.定义一个反映学生出生年份的视图V_YEAR

5.将各位学生选修课程的门数及平均成绩定义为视图V_AVG_S_G

6.将各门课程的选修人数及平均成绩定义为视图V_AVG_C_G

5.使用视图

1.查询以上所建的视图结果。

2.查询平均成绩为90 分以上的学生学号、姓名和成绩;

3.查询各课成绩均大于平均成绩的学生学号、姓名、课程和成绩;

4.按系统计各系平均成绩在80 分以上的人数,结果按降序排列;

6.修改视图

1.通过视图 V_IS,分别将学号为“S1”和“S4”的学生姓名更改为“S1_MMM”,”S4_MMM”并查询结果

步骤:新建查询-输入代码:

update S_C_GRADE

set sname='S1_MMM'

where sno like 'S1'

GO

update S_C_GRADE

set sname='S4_MMM'

where sno like 'S4

2.通过视图 V_IS,新增加一个学生记录 ('S12','YAN XI',19,'IS'),

并查询结果

insert into V_IS

values ('S12','YAN XI',19,'IS')

Go

相关资源:mysql视图之创建视图(CREATEVIEW)和使用限制实例详解_学生表为...

文章知识点与官方知识档案匹配

MySQL入门技能树SQL高级技巧CTE和递归查询

30689 人正在系统学习中

打开CSDN,阅读体验更佳

视图的创建与使用 Sql Server View_sunseazhu的博客

13、创建一个名为View_Course3的视图,从Course表中查询学分大于3的所有课程的课程号、课程名、学分。 createviewView_Course3AS selectCno,Cname,CcreditfromCourse whereCcredit>3 14、查看View_Course3视图的内容。 select*fromView_C...

实验五、视图的创建与使用_Lilianac的博客_视图的创建与...

(1)创建一个名为stuview1的水平视图,从Student_info数据库的student表中查询出所有男学生的资料。并在创建视图时使用with check option。 create view stuview1 as select * from Student where Sex='男' with check option(2)...

最新发布 SQL语句创建、修改视图的方法

5.向电子05的学生视图中添加一条记录,其中学号为0596,姓名为赵亦,性别为男,专业班级为电子05,出生日期为1986-6-8(除了电子05的学生视图发生变化之外,看看学生表中发生了什么变化?6.将电子05的学生视图中赵亦的性别改为“女”(除了电子05的学生视图发生变化之外,看看学生表中发生了什么变化?2.创建一个生物05的学生作业情况视图(包括学号、姓名、课程名、作业1成绩、作业2成绩、作业3成绩)。3.创建一个学生作业平均成绩视图(包括学号、作业1平均成绩、作业2平均成绩、作业3平均成绩)。

继续访问

MySQL在单表上创建视图

在单表上创建视图在student表上,创建view_stu视图 首先,创建一个数据库chapter07在数据库中,创建一个表student,用于存储学生信息 向student表中,插入数据查看表中数据创建student表的视图使用视图可以看出,视图创建成功 并且,重新定义了一个计算数据和语文成绩之和的math+chinese字段默认情况下,创建的视图字段名称和基本表的字段名是一样的,但是,也可

继续访问

mysql创建视图的语法_yetaoseo的博客

mysql多表查询并创建视图 MySQL在多个数据表上创建视图在MySQL中,使用CREATE VIEW语句也可以在两个或两个以上的数据表上创建视图。在department表和worker表上创建一个名为worker_view1的视图。1. 创建视图的代码如下:CREATE ALGORITHM=MER...

视图---创建、定义及删除_九霄云客的博客_创建视图显示...

1、 建立查询学生的学号、姓名、性别和年龄的视图。(视图名为view1) 用SQL命令创建视图 createviewview1asselectSno,Sname,Sex,Sagefromstudent 删掉建立的视图 dropviewview1 1 2、 查询计算机系年龄小于20的女 学生的学号、姓名和年...

MySQL基础学习第十三课(视图的创建)

视图的创建

继续访问

mysql索引视图实验总结_视图和索引的创建和使用实验报告

信息工程学院实验报告成 绩:指导老师(签名):课程名称:《数据库原理》实验项目名称:视图和索引的创建和使用一、实 验 目 的:(1)掌握创建视图的SQL语句的用法。(2)掌握修改视图的方法。(3)熟悉视图更新与基本表更新的区别与联系;认识视图的作用。(4)熟悉索引的作用,以及不同类型索引的区别。(5)学会用T-SQL语句对表创建和删除索引二、实 验 设 备 与 器 件Win7 +Sql serv...

继续访问

MySQL视图(view)创建知识点详解_注意事项_a.๓的博客_mysq...

如何看视图是否创建成功,如图 # 去学生表所在数据库 (其还要看你在创建时所use选择的数据库) 中的视图看是否有你所创建的视图名 使用SQL语句查看视图 select字段1, 字段2, ……fromview_name...

从头开始学MySQL---视图_小大宇的博客

在单表上创建视图,如果不指定字段列的话,默认查询出所有的字段。 CREATEVIEWstuInfo ASSELECT*FROMt_student指定部分字段。查询出来的数据,将会顺序对应视图中定义的列。 CREATEORREPLACEVIEWstuInfo(id,学生名,身份z) ...

热门推荐 数据库 实验四 视图

实验目的 1. 掌握创建视图的方法。 2. 掌握修改视图的方法。 3. 掌握查询视图的方法。 4. 掌握更新视图的方法。 5. 掌握删除视图的方法 根据实验2中给出的学生作业管理数据库以及其中的学生表、课程表和学生作业表,进行以下 *** 作(每一个题目除了给出SQL语句之外,还要给出结果)。 1.创建一个电子05的学生视图(包括学号,姓名,性别,专业班级,出生日期)。 CREATE VIEW 电子05 AS SELECT Sno,Sname,Sex,Deptandclass,Birthd.

继续访问

mysql创建单个字段视图,MySQL在单表上创建视图

搜索热词在单表上创建视图在student表上,创建view_stu视图首先,创建一个数据库chapter07图片描述" title="">在数据库中,创建一个表student,用于存储学生信息向student表中,插入数据图片描述" title="">查看表中数据图片描述" title="">创建student表的视图图片描述" title="">使用视图图片描述" tit...

继续访问

数据库实验系列之1数据库及数据库中表等数据库对象的建立实验(包括关系图、完整性、权限控制、视图、索引等内容)

数据库及数据库中表等数据库对象的建立实验(包括关系图、完整性、权限控制、视图、索引等内容)实验1 SQL Server的安装安装过程展示实验2 设计数据库、创建数据库和数据表实验5 视图实验6 完整性约束实验7 权限管理附 创建market表,后续将会使用 实验1 SQL Server的安装 实验目的 掌握SQL Server安装的硬件要求和系统要求。 熟悉SQL Server的安装步骤。 掌握SQL Server的卸载方法。 了解SQL Server的主要组件。 掌握登录和断开数据库服务器

继续访问

数据库建模:学生信息系统搭建实验

首先必须理清学生信息系统有哪些实体,这些实体之间的关系又是如何的,他们之间是怎么进行关联的 实体有哪些: 学生表(student) 专业表(major) 课程表(course) 成绩表(grade) 班级表(class) 老师表(teacher) 宿舍表(dorm)...

继续访问

数据库实验三

内容 1.基于实验1中建立的表,完成如下的视图 *** 作: (1)建立一个计算机系(CS)学生的视图COMPUTE_S,并要求进行修改和插入 *** 作时仍需保证该视图只有计算机系的学生; (2) 建立一个信息系(IS)选修了’1’号课程且成绩在80分以上的学生视图IS_S1; (3) 建立一个所有计算机系学生的学号、姓名、选修课程名以及成绩的视图COMPUTE_GRADE对视图进行SELECT、INSERT、UPDATE、DELETE *** 作 (1)通过COMPUTE_S视图插入一个新学生的信息:201215127

继续访问

建立计算机系学生视图,实验六 视图的 *** 作.doc

实验六 视图的 *** 作实验六 视图的 *** 作一、实验目的1、理解的概念。、掌握。SQL语句创建视图,掌握查询分析器的使用1、语句格式CREATE VIEW [( [,]…)]AS [WITH CHECK OPTION];例6-1建立计算机系学生的视图。CREATE VIEW CS_StudentASSELECT Sno,Sname,Sage 几个单词之间的逗号都要在字母输入状态下FROM ...

继续访问

mysql为什么使用视图

测试表:user有id,name,age,sex字段测试表:goods有id,name,price字段测试表:ug有id,userid,goodsid字段视图的作用实在是太强大了,以下是我体验过的好处:作用一:提高了重用性,就像一个函数。如果要频繁获取user的name和goods的name。就应该使用以下sql语言。示例:select a.name as username...

继续访问

mysql笔记

mysql笔记

继续访问

oracle学生成绩表的创建,oracle如何创建视图(1)创建视图V_StudInfo,查询学生的学号,姓名,所修课程号,所修课程名称,成绩等级(9...

共回答了20个问题采纳率:95%1create view V_StudInfoasselect a.学号,a.姓名,b.课程号,b.课程名,case when c.成绩 between 90 and 100 then '优'when c.成绩 between 80 and 89 then '良'when c.成绩 between 70 and 79 then '中'when c.成绩 betwee...

继续访问

视图的建立(sql)

1. 定义计算机系学生基本情况视图V_Computer;CREATE VIEW V_COMPUTERASSELECT *FROM studentWHEREsdept='is' 2. 将Student Course 和sc表中学生的学号,姓名,课程号,课程名,成绩定义为视图V_S_C_GCREATE VIEW V_S_C_GAS SELECTstudent.sno,student.sname,co...

继续访问

建立计算机科学系的学生视图,数据库

1.定义一个学生-课程模式S-TCREATE SCHEMA“S-T”AUTHORIZATION WANG;2.删除模式DROP SCHEMA ZHANG CASCADE;(全部删除)RESTRICT;(有限制,无下属执行)3.建立一个“课程”表CourseCREATE TABLE Course(Cno CHAR(4)PRIMARY KEY,Cname CHAR(40),Cpno CHAR(4).C...

继续访问

【MySQL】视图实训

1. 创建XSCJ数据库上的CS_KC视图,包括计算机专业各学生的学号、选修课的课程号及成绩。要保证对该视图的修改都要符合专业名为计算机这个条件。 CREATE OR REPLACE VIEW CS_KC AS SELECT xs_kc.学号,课程号,成绩 FROM xs_kc,xs WHERE xs_kc.学号=xs.学号 AND xs.专业名='计算机' WITH CHECK OPTION 2.创建XSCJ数据库上的计算机专业学生的平均成绩视图CS_KC_AVG,包括学号(在视图中列名为

继续访问

数据库实验三、数据库的视图及应用

(1)建立软件学院学生的视图:rj_student。视图中包括:学号、姓名、年龄、学院。 create view rj_student AS select sno,sname,sage from student where sdept='软件学院'(2)利用第1题所建立的视图:rj_student查出年龄小于20岁的软件学院的学生信息,查询结果中包括:学号、姓名、性别、学院等4个属性;写出与上述利用视图的查询等价的利用基本表student的查询语句,并验证上述两个查询的等效性。 cre.

继续访问

线性表建立学生信息表

用线性表建立学生信息 这是继上一次实验(顺序表)的后续,即用线性表的链式表示和实现,这个实验的要求相关事项这里就不再赘述,可以到我的上一篇文章去看,顺序表的内容也在上一篇文章,这里仅对单链表的 *** 作进行表示和实现。 初始化部分:即构造一个空链表。 【算法描述】 Status InitList(LinkList &L) { L=new LNode//新结点作为头结点 L...

继续访问

数据库系统实验3:创建数据库以及表,创建和使用视图

数据库系统实验3:创建数据库以及表,创建和使用视图 数据库系统实验3:创建数据库以及表,创建和使用视图 实验环境 实验内容 步骤及过程 创建数据库以及表 创建和使用视图 实验环境 windows10 *** 作系统,使用MySQL 5.5 Command Line完成实验 实验内容 实验课教材(MySQL数据库技术与实验指导)第66页“实验内容与要求”1-2题 ...

继续访问

数据库SQL语言学习--上机练习4(视图)

上机练习4 一.实验目的 1. 熟悉和掌握对数据表中视图的查询 *** 作和 SQL 命令的使用; 2. 熟悉和掌握对数据表中视图的更新 *** 作和 SQL 命令的使用,并注意视图更新与基本表更新的区别与联系; 3. 学习灵活熟练的进行视图的 *** 作,认识视图的作用。 二.实验内容 (一) 定义视图 以 Student, Course 和SC表为基础完成以下视图定义: 1. ...

继续访问

如何在学生表上创建视图

为计算机系的学生建立视图


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/zaji/8609652.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-18
下一篇2023-04-18

发表评论

登录后才能评论

评论列表(0条)

    保存