61阅读

mysql数据库搭建-Ubuntu 搭建LNMP环境图文教程 安装MySQL数据库

发布时间:2018-02-08 所属栏目:数据库附加图文教程

一 : Ubuntu 搭建LNMP环境图文教程 安装MySQL数据库

调出命令行界面,键入“cd /usr/local/src”回车,进入到文件夹中,这个文件夹用来保存所需使用的软件安装包。

接着键入“sudo wget http://downloads.mysql.com/archives/mysql-5.0/mysql-5.0.45.tar.gz”回车,如果提示输入密码,输入密码后回车,开始下载安装包文件,等待进度条走到头下载完毕。

下载完成后,输入“ll”可以查看到已下载的文件。

解压安装包文件,键入“sudo tar zxvf mysql-5.0.45.tar.gz”回车,开始解压操作直到完成结束。

解压结束后,进入安装目录中,键入“cd mysql-5.0.45/”回车。

键入“sudo ./configure --prefix=/usr/local/server/mysql/ --enable-assembler --with-extra-charsets=complex --enable-thread-safe-client --with-big-tables --with-embedded-server --enable-local-infile --with-plugins=innobase”回车,开始配置安装,直到出现下图说明操作顺利完成。

我们将环境全部装在“/usr/local/server”下,所以需要先建立目录。输入“sudo mkdir /usr/local/server”回车创建目录。

将目录所属者设置成“xinxueqi.com”,执行命令“sudo chown -R xinxueqi.com:xinxueqi.com /usr/local/server”(图中为xinxueqi:xinxueqi并不是xinxueqi.com:xinxueqi.com,这里是用户名:用户组,根据实际情况设置即可)回车。
接着开始编译MySQL,在mysql-5.0.45目录下键入“sudo make && make install clean”。

编译完成后将会显示下图信息。

进入到MySQL目录中,键入“cd /usr/local/server/mysql”回车,再输入“ll”回车,查看目录下的文件列表。

创建配置文件,键入“cp ./share/mysql/my-medium.cnf ./my.cnf”回车。
然后安装默认数据库文件,键入“./bin/mysql_install_db”回车。

设置服务启动脚本,执行“sudo cp ./share/mysql/mysql.server /etc/init.d/mysql”回车。
再执行“sudo chmod +x /etc/init.d/mysql”回车。
然后使用“/etc/init.d/mysql start”及“/etc/init.d/mysql stop”运行和结束mysql服务。

最后设置数据库root密码,这步要在数据库运行的情况下执行,首先“/etc/init.d/mysql start”启动数据库,然后再执行“./bin/mysqladmin -u root password 123456”(123456是密码,根据实际情况自行设置)回车。

MySQL数据库安装到这里结束。 

二 : 为mysql数据库建立索引

前些时候,一位颇高级的程序员居然问我什么叫做索引,令我感到十分的惊奇,我想这绝不会是沧海一粟,因为有成千上万的开发者(可能大部分是使用MySQL的)都没有受过有关数据库的正规培训,尽管他们都为客户做过一些开发,但却对如何为数据库建立适当的索引所知较少,因此我起了写一篇相关文章的念头。(www.61k.com)

  最普通的情况,是为出现在where子句的字段建一个索引。为方便讲述,我们先建立一个如下的表。

Code代码如下:
CREATE TABLE mytable (
id serial primary key,
category_id int not null default 0,
user_id int not null default 0,
adddate int not null default 0
);

  很简单吧,不过对于要说明这个问题,已经足够了。如果你在查询时常用类似以下的语句:

SELECT * FROM mytable WHERE category_id=1; 

  最直接的应对之道,是为category_id建立一个简单的索引:

CREATE INDEX mytable_categoryid 
ON mytable (category_id);

  OK,搞定?先别高兴,如果你有不止一个选择条件呢?例如:

SELECT * FROM mytable WHERE category_id=1 AND user_id=2;

  你的第一反应可能是,再给user_id建立一个索引。不好,这不是一个最佳的方法。你可以建立多重的索引。

CREATE INDEX mytable_categoryid_userid ON mytable (category_id,user_id);

  注意到我在命名时的习惯了吗?我使用"表名_字段1名_字段2名"的方式。你很快就会知道我为什么这样做了。

  现在你已经为适当的字段建立了索引,不过,还是有点不放心吧,你可能会问,数据库会真正用到这些索引吗?测试一下就OK,对于大多数的数据库来说,这是很容易的,只要使用EXPLAIN命令:

EXPLAIN

SELECT * FROM mytable 
WHERE category_id=1 AND user_id=2;

This is what Postgres 7.1 returns (exactly as I expected) 

NOTICE: QUERY PLAN:

Index Scan using mytable_categoryid_userid on 
  mytable (cost=0.00..2.02 rows=1 width=16)

EXPLAIN

  以上是postgres的数据,可以看到该数据库在查询的时候使用了一个索引(一个好开始),而且它使用的是我创建的第二个索引。看到我上面命名的好处了吧,你马上知道它使用适当的索引了。

  接着,来个稍微复杂一点的,如果有个ORDER BY字句呢?不管你信不信,大多数的数据库在使用order by的时候,都将会从索引中受益。

SELECT * FROM mytable 
  WHERE category_id=1 AND user_id=2
    ORDER BY adddate DESC;

  有点迷惑了吧?很简单,就象为where字句中的字段建立一个索引一样,也为ORDER BY的字句中的字段建立一个索引:

CREATE INDEX mytable_categoryid_userid_adddate
  ON mytable (category_id,user_id,adddate);

  注意: "mytable_categoryid_userid_adddate" 将会被截短为

"mytable_categoryid_userid_addda"

CREATE

  EXPLAIN SELECT * FROM mytable
WHERE category_id=1 AND user_id=2
ORDER BY adddate DESC;

NOTICE: QUERY PLAN:

Sort (cost=2.03..2.03 rows=1 width=16)
-> Index Scan using mytable_categoryid_userid_addda 
on mytable (cost=0.00..2.02 rows=1 width=16)

EXPLAIN

  看看EXPLAIN的输出,好象有点恐怖啊,数据库多做了一个我们没有要求的排序,这下知道性能如何受损了吧,看来我们对于数据库的自身运作是有点过于乐观了,那么,给数据库多一点提示吧。

  为了跳过排序这一步,我们并不需要其它另外的索引,只要将查询语句稍微改一下。这里用的是postgres,我们将给该数据库一个额外的提示--在ORDER BY语句中,加入where语句中的字段。这只是一个技术上的处理,并不是必须的,因为实际上在另外两个字段上,并不会有任何的排序操作,不过如果加入,postgres将会知道哪些是它应该做的。

EXPLAIN SELECT * FROM mytable 
  WHERE category_id=1 AND user_id=2
ORDER BY category_id DESC,user_id DESC,adddate DESC;

NOTICE: QUERY PLAN:

Index Scan Backward using 
mytable_categoryid_userid_addda on mytable 
  (cost=0.00..2.02 rows=1 width=16)

EXPLAIN

  现在使用我们料想的索引了,而且它还挺聪明,知道可以从索引后面开始读,从而避免了任何的排序。

  以上说得细了一点,不过如果你的数据库非常巨大,并且每日的页面请求达上百万算,我想你会获益良多的。不过,如果你要做更为复杂的查询呢,例如将多张表结合起来查询,特别是where限制字句中的字段是来自不止一个表格时,应该怎样处理呢?我通常都尽量避免这种做法,因为这样数据库要将各个表中的东西都结合起来,然后再排除那些不合适的行,搞不好开销会很大。

  如果不能避免,你应该查看每张要结合起来的表,并且使用以上的策略来建立索引,然后再用EXPLAIN命令验证一下是否使用了你料想中的索引。如果是的话,就OK。不是的话,你可能要建立临时的表来将他们结合在一起,并且使用适当的索引。

  要注意的是,建立太多的索引将会影响更新和插入的速度,因为它需要同样更新每个索引文件。对于一个经常需要更新和插入的表格,就没有必要为一个很少使用的where字句单独建立索引了,对于比较小的表,排序的开销不会很大,也没有必要建立另外的索引。

  以上介绍的只是一些十分基本的东西,其实里面的学问也不少,单凭EXPLAIN我们是不能判定该方法是否就是最优化的,每个数据库都有自己的一些优化器,虽然可能还不太完善,但是它们都会在查询时对比过哪种方式较快,在某些情况下,建立索引的话也未必会快,例如索引放在一个不连续的存储空间时,这会增加读磁盘的负担,因此,哪个是最优,应该通过实际的使用环境来检验。

  在刚开始的时候,如果表不大,没有必要作索引,我的意见是在需要的时候才作索引,也可用一些命令来优化表,例如MySQL可用"OPTIMIZE TABLE"。

  综上所述,在如何为数据库建立恰当的索引方面,你应该有一些基本的概念了。

三 : 怎么使用MySql-Front新建数据库

[mysql front]怎么使用MySql-Front新建数据库——简介
怎么使用MySql-Front新建数据库
[mysql front]怎么使用MySql-Front新建数据库——详细知识

[mysql front]怎么使用MySql-Front新建数据库 一
1.打开Mysql-front工具

[mysql front]怎么使用MySql-Front新建数据库 二
2.打开对话窗口会让你选择要打开的数据库,这里以本地数据库localhost为例

[mysql front]怎么使用MySql-Front新建数据库 三
3.打开之后,左侧的列表会展示你本地的所有已建数据库的名称

[mysql front]怎么使用MySql-Front新建数据库 四
4.在顶部 127.0.0.1上右键选择 “新建”--“数据库”

[mysql front]怎么使用MySql-Front新建数据库 五
5.输入数据库的名称,选择字符集(这个要根据你的程序来定,是GBK就选GBK是utf-8就选择utf-8,不然会出现乱码的问题)

[mysql front]怎么使用MySql-Front新建数据库 六
6.点击确定之后,新建的数据库就显示在了你的右侧列表中

四 : MYSQL创建utf-8格式的数据库

MYSQL创建utf-8格式的数据库

先mysql进入:

www.2cto.com

Linux代码

GBK: create database test2 DEFAULT CHARACTER SET gbk COLLATE gbk_chinese_ci;

UTF8: CREATE DATABASE `test2` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

eg:

Linux代码 www.2cto.com

[root@linuxtest test]# mysql -u root -p

Enter password:

Welcome to the MySQL monitor. Commands end with ; or \g.

Your MySQL connection id is 5

Server version: 5.1.30-community MySQL Community Server (GPL)

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> CREATE DATABASE `test` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

Query OK, 1 row affected (0.06 sec)

mysql> show databases;

+--------------------+

| Database |

+--------------------+

| information_schema |

| cacti |

| mysql |

| test | |

+--------------------+

5 rows in set (0.07 sec)

这个test库就是utf-8格式的

扩展:mysql创建utf8数据库 / mysql 创建数据库 utf / mysql 建数据库 utf8

五 : mysql如何建立数据库

mysql建立数据库使用create命令:
新建数据库例: 
以mysql最高管理员登录,在mysql>create database XXXXX; 
xxxxx即为数据库名. 
在mysql中如何创建用户,使该用户对该数据库有完全权限.
可 以 用 GRANT 命 令 , 格 式 如 下 : 
GRANT 许可权 ON 数据库名.表名 TO 新用戶名@主机名 IDENTIFIED BY '密码'; 
grant all on husidb.* to john@localhost identified by ’201314’; 
注:每一句mysql语句后面都跟有;号.注意大小写.


本文标题:mysql数据库搭建-Ubuntu 搭建LNMP环境图文教程 安装MySQL数据库
本文地址: http://www.61k.com/1116453.html

61阅读| 精彩专题| 最新文章| 热门文章| 苏ICP备13036349号-1