1、首先点击【开始】
2、然后在搜索栏输入cmd,并按回车,
3、在cmd输入net stop mysql,然后回车,
4、此时显示mysql已停止,
5、在cmd下输入net start mysql,然后回车,
6、此时显示mysql已启动,重启完成,完成效果图。
MySQL 安装与使用 一 什么是 MySQL MySQL (发音为 My Ess Que Ell )是 Tcx 公司()开发的一个多人使用 多执行绪的 SQL 资料库 Server MySQL 主要的目标在快速 稳定和容易使用 MySQL 可在此 取得 二 MySQL 的安装 本文所使用的 MySQL 版本为 mysql tar gz(原始码档) 作业环境为 RedHat +CLE MySQL 预设情况下会安装至 /usr/local 目录下 不过为了日后移除方便 建议将 mysql 独立安装在 /usr/local/mysql 目录 底下为安装 MySQL 的步骤 取得 mysql tar gz 后 于 /usr/local 目录下解开 # cd /usr/local# tar zxvf mysql tar gz# cd mysql 设定 configure 安装选项 选择安装目录 (prefix)以及支援中文 Big 码(with charset=big ) # /configure prefix=/usr/local/mysql # with charset=big 开始编译并安装 # make# make install# scripts/mysql_install_db最后一个步骤是用来产生 MySQL grant tables(会建立一个 mysql 资料库和一些 tables 用来管理使用 MySQL 的授权资讯 也就是使用者有哪些使用资料库的权限) 三 启动 停止 MySQL 要启动 MySQL 的方法 (以本文将 MySQL 安装在 /usr/local/mysql 为例)# /usr/local/mysql/share/mysql server start注意在第一次执行前 须将 mysql server 设成可执行(chmod mysql server) 另外可将这行指令加在 /etc/rc d/rc local 档中 让 MySQL 在开机时自动启动 要停止 MySQL 的方法 # /usr/local/mysql/bin/mysqladmin shutdown如果你为 MySQL Administrator root 帐号(非作业系统的 root)设了密码 要停止 MySQL 则必须像下列这样做 MySQL 会询问你 root 的密码后才会执行 shutdown 的工作 # /usr/local/mysql/bin/mysqladmin u root p shutdown 四 管理与使用 MySQL 简介 在你开始前MySQL 提供了许多工具 (Client Tools)来与 MySQL 资料库 Server 连线 其中最主要的为 mysql 交谈式连线工具与 mysqladmin 公用程式 大部份时候使用者会用 mysql 来和资料库 Server 交谈 底下就以 mysql 连线工具来介绍如何维护与使用 MySQL (以本文安装为例 mysql 工具位于 /usr/local/mysql/bin/mysql) mysql 的使用语法如下 mysql [ u username] [ h host] [ p[password]] [dbname]MySQL 资料库有自己一套使用者帐号与权限管控方法 所以这边所指定的 username 与 password 是 MySQL 的使用者与密码 而不是作业系统的使用者与密码(当然任何使用者都能执行 mysql 然后以 MySQL 的任何帐号进入使用) 在你第一次安装好 MySQL 时 MySQL 的管理帐号为 root 没有设定密码 (非作业系统的 root) 所以在开始前 请先照下列步骤为 root 设好密码 使用 mysql 与 MySQL 资料库 Server 连线 # /usr/local/mysql/bin/mysql u root mysqlReading table information for pletion of table and column namesYou can turn off this feature to get a quicker startup with AWele to the MySQL monitor Commands end with or \g Your MySQL connection id is to server version: Type help for help mysql>在下了 mysql u root mysql 指令 指定以 root 帐号并开启 mysql 系统资料库 连线至 MySQL 后 会看到一些提示讯息与 mysql 工具的提示符号 以后大部份的工作皆在此提示符号下完成 更改 MySQL系统管理者 root 密码 mysql>update user set password=password( 新密码 ) where user= root Query OK rows affected ( sec)Rows matched: Changed: Warnings: mysql>FLUSH PRIVILEGESQuery OK rows affected ( sec)mysql>quitBye注意每个指令后要加上一个分号 才会让 mysql 开始执行 而第二道指令会让已载入记忆体的 mysql 系统资料库更新 最后离开 mysql 工具程式 在更新 root 密码后 日后要与 MySQL 连线的方法为 mysql u root p新密码或者是这样 让 mysql 询问 root 的密码 mysql u root p资料库维护接下来 我们以简单的通讯录资料库作为例子 来介绍如何用 mysql 工具程式来做资料库的维护(新增 授权 资料表维护等) 首先 以 MySQL root 帐号连线后建立一 addbook 资料库 # /usr/local/mysql/bin/mysql u root pEnter password:Wele to the MySQL monitor Commands end with or \g Your MySQL connection id is to server version: Type help for help mysql>create databae addbookQuery OK row affected ( sec)指定使用 addbook 资料库 并建立一个 friends 资料表 mysql>use addbookDatabase changedmysql>create table friends ( >name Char( ) >telphone VarChar( ) >icq Char( ) >address VarChar( ) >)Query OK rows affected ( sec)新增几笔资料 并查询看看 mysql>insert into friends values( >maa 台北县新庄市 >)Query OK row affected ( sec)mysql>insert into friends (name icq telphone address ) Values ( >cxlin 台北县 >)Query OK row affected ( sec)mysql>select * from friends+ + + + +| name | telphone | icq | address |+ + + + +| maa | | | 台北县新庄市 || cxlin | | | 台北县 |+ + + + + rows in set ( sec)第二个 insert 指令指定了资料栏位的插入顺序 用法较第一个为d性 而第一个指令必须依资料表建立结构时的顺序插入资料 更新 删除资料表记录 mysql>update friends set address = 桃园县 where name = cxlin Query OK row affected ( sec)Rows matched: Changed: Warnings: mysql>select * from friends where name = cxlin + + + + +| name | telphone | icq | address |+ + + + +| cxlin | | | 桃园县 |+ + + + + row in set ( sec)mysql>delete from friends where name = maa Query OK row affected ( sec)mysql>select * from friends+ + + + +| name | telphone | icq | address |+ + + + +| cxlin | | | 桃园县 |+ + + + + row in set ( sec)最后 建好资料库与资料表后 把 addbook 资料库中所有资料表的使用权限(select insert update delete)授权给 maa@localhost(再次提醒 此处的 maa 为 MySQL 的使用者帐号 而非作业系统的 maa 帐号) mysql>grant select insert update delete >on addbook * >to maa@localhost identified by Query OK rows affected ( sec)之后 可用 maa 的身份进入 MySQL 存取 addbook 资料库 # /usr/local/mysql/bin/mysql u maa p addbookEnter password:Reading table information for pletion of table and column namesYou can turn off this feature to get a quicker startup with AWele to the MySQL monitor Commands end with or \g Your MySQL connection id is to server version: Type help for help mysql>status /mysql Ver Distrib for pc linux gnu (i )Connection id: Current database: addbookCurrent user: maa@localhostServer version Protocol version Connection Localhost via UNIX socketUNIX socket /tmp/mysql sockUptime: hours min secThreads: Questions: Slow queries: Opens: Flush tables: Open lishixinzhi/Article/program/MySQL/201311/29503启动:net start mySql
进入:mysql -u root -p/mysql -h localhost -u root -p databaseName
列出数据库:show databases
选择数据库:use databaseName
列出表格:show tables;
显示表格列的属性:show columns from tableName;
建立数据库:source fileName.txt
匹配字符:可以用通配符_代表任何一个字符,%代表任何字符串
增加一个字段:alter table tabelName add column fieldName dateType
增加多个字段:alter table tabelName add column fieldName1 dateType,add columns fieldName2 dateType
多行命令输入:注意不能将单词断开当插入或更改数据时,不能将字段的字符串展开到多行里,否则硬回车将被储存到数据中
增加一个管理员帐户:grant all on *.* to user@localhost identified by "password"
每条语句输入完毕后要在末尾填加分号'',或者填加'\g'也可以;
查询时间:select now()
查询当前用户:select user()
查询数据库版本:select version()
查询当前使用的数据库:select database()
1、删除student_course数据库中的students数据表:
rm -f student_course/students.*
2、备份数据库:(将数据库test备份)
mysqldump -u root -p test>c:\test.txt
备份表格:(备份test数据库下的mytable表格)
mysqldump -u root -p test mytable>c:\test.txt
将备份数据导入到数据库:(导回test数据库)
mysql -u root -p test
3、创建临时表:(建立临时表zengchao)
create temporary table zengchao(name varchar(10))
4、创建表是先判断表是否存在
create table if not exists students(……)
5、从已经有的表中复制表的结构
create table table2 select * from table1 where 1<>1
6、复制表
create table table2 select * from table1
7、对表重新命名
alter table table1 rename as table2
8、修改列的类型
alter table table1 modify id int unsigned//修改列id的类型为int unsigned
alter table table1 change id sid int unsigned//修改列id的名字为sid,而且把属性修改为int unsigned
9、创建索引
alter table table1 add index ind_id (id)
create index ind_id on table1 (id)
create unique index ind_id on table1 (id)//建立唯一性索引
10、删除索引
drop index idx_id on table1
alter table table1 drop index ind_id
11、联合字符或者多个列(将列id与":"和列name和"="连接)
select concat(id,':',name,'=') from students
12、limit(选出10到20条)<第一个记录集的编号是0>
select * from students order by id limit 9,10
13、MySQL不支持的功能
事务,视图,外键和引用完整性,存储过程和触发器
14、MySQL会使用索引的 *** 作符号
<,<=,>=,>,=,between,in,不带%或者_开头的like
15、使用索引的缺点
1)减慢增删改数据的速度;
2)占用磁盘空间;
3)增加查询优化器的负担;
当查询优化器生成执行计划时,会考虑索引,太多的索引会给查询优化器增加工作量,导致无法选择最优的查询方案;
16、分析索引效率
方法:在一般的SQL语句前加上explain;
分析结果的含义:
1)table:表名;
2)type:连接的类型,(ALL/Range/Ref)。其中ref是最理想的;
3)possible_keys:查询可以利用的索引名;
4)key:实际使用的索引;
5)key_len:索引中被使用部分的长度(字节);
6)ref:显示列名字或者"const"(不明白什么意思);
7)rows:显示MySQL认为在找到正确结果之前必须扫描的行数;
8)extra:MySQL的建议;
17、使用较短的定长列
1)尽可能使用较短的数据类型;
2)尽可能使用定长数据类型;
a)用char代替varchar,固定长度的数据处理比变长的快些;
b)对于频繁修改的表,磁盘容易形成碎片,从而影响数据库的整体性能;
c)万一出现数据表崩溃,使用固定长度数据行的表更容易重新构造。使用固定长度的数据行,每个记录的开始位置都是固定记录长度的倍数,可以很容易被检测到,但是使用可变长度的数据行就不一定了;
d)对于MyISAM类型的数据表,虽然转换成固定长度的数据列可以提高性能,但是占据的空间也大;
18、使用not null和enum
尽量将列定义为not null,这样可使数据的出来更快,所需的空间更少,而且在查询时,MySQL不需要检查是否存在特例,即null值,从而优化查询;
如果一列只含有有限数目的特定值,如性别,是否有效或者入学年份等,在这种情况下应该考虑将其转换为enum列的值,MySQL处理的更快,因为所有的enum值在系统内都是以标识数值来表示的;
19、使用optimize table
对于经常修改的表,容易产生碎片,使在查询数据库时必须读取更多的磁盘块,降低查询性能。具有可变长的表都存在磁盘碎片问题,这个问题对blob数据类型更为突出,因为其尺寸变化非常大。可以通过使用optimize table来整理碎片,保证数据库性能不下降,优化那些受碎片影响的数据表。 optimize table可以用于MyISAM和BDB类型的数据表。实际上任何碎片整理方法都是用mysqldump来转存数据表,然后使用转存后的文件并重新建数据表;
20、使用procedure analyse()
可以使用procedure analyse()显示最佳类型的建议,使用很简单,在select语句后面加上procedure analyse()就可以了;例如:
select * from students procedure analyse()
select * from students procedure analyse(16,256)
第二条语句要求procedure analyse()不要建议含有多于16个值,或者含有多于256字节的enum类型,如果没有限制,输出可能会很长;
21、使用查询缓存
1)查询缓存的工作方式:
第一次执行某条select语句时,服务器记住该查询的文本内容和查询结果,存储在缓存中,下次碰到这个语句时,直接从缓存中返回结果;当更新数据表后,该数据表的任何缓存查询都变成无效的,并且会被丢弃。
2)配置缓存参数:
变量:query_cache _type,查询缓存的 *** 作模式。有3中模式,0:不缓存;1:缓存查询,除非与 select sql_no_cache开头;2:根据需要只缓存那些以select sql_cache开头的查询; query_cache_size:设置查询缓存的最大结果集的大小,比这个值大的不会被缓存。
22、调整硬件
1)在机器上装更多的内存;
2)增加更快的硬盘以减少I/O等待时间;
寻道时间是决定性能的主要因素,逐字地移动磁头是最慢的,一旦磁头定位,从磁道读则很快;
3)在不同的物理硬盘设备上重新分配磁盘活动;
如果可能,应将最繁忙的数据库存放在不同的物理设备上,这跟使用同一物理设备的不同分区是不同的,因为它们将争用相同的物理资源(磁头)。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)