工作总结-MySQL相关

一、MySQL下载与安装

(一)、可以选择Linux General来下载免编译的tar.gz的包,解压以后,具体操作可根据

(1)、mv mysql-5.1.40-linux-i686-icc-glibc23 /usr/local/mysql

(2)、建立mysql用户: useradd -s /sbin/nologin mysql

(3)、初始化数据库

        [[email protected] src]# cd /usr/local/mysql
        [[email protected] mysql]# mkdir -p /data/mysql ; chown -R mysql:mysql /data/mysql
        [[email protected] mysql]# ./scripts/mysql_install_db --user=mysql --datadir=/data/mysql

(4)、拷贝配置文件

[[email protected] mysql]# cp support-files/my-large.cnf /etc/my.cnf
        [[email protected] mysql]# cp support-files/mysql.server  /etc/init.d/mysqld
        [[email protected] mysql]# chmod 755 /etc/init.d/mysqld
    (6)、
        [[email protected] mysql]# vim /etc/init.d/mysqld

需要修改的地方有 “datadir=/data/mysql” (前面初始化数据库时定义的目录)

(7)、把启动脚本加入系统服务项,并设定开机启动,启动mysql

        [[email protected] mysql]# chkconfig --add mysqld
        [[email protected] mysql]# chkconfig mysqld on
        [[email protected] mysql]# service mysqld start

如果启动不了,请到 /data/mysql/ 下查看错误日志,这个日志通常是主机名.err. 检查mysql是否启动的命令为:[[email protected] mysql]# ps aux |grep mysqld

(二)、也可以下载rpm包,直接用rpm -ivh filename 来安装

rpm -ivh http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm

yum install mysql mysql-community-server -y


二、常用操作

    

flushprivileges ;//修改权限之后,刷新MySQL的系统权限相关表方可生效

(一)Linux下MySQL的备份与还原 
1. 备份 
[[email protected] ~]# cd /var/lib/mysql (进入到MySQL库目录,根据自己的MySQL的安装情况调整目录) 
[[email protected] mysql]# mysqldump -u root -p voice>voice.sql,输入密码即可。
2. 还原
法一:
[[email protected] ~]# mysql -u root -p 回车,输入密码,进入MySQL的控制台"mysql>",同1.2还原。
法二:
[[email protected] ~]# cd /var/lib/mysql (进入到MySQL库目录,根据自己的MySQL的安装情况调整目录) 
[[email protected] mysql]# mysql -u root -p voice<voice.sql,输入密码即可。

mysqldump: Got error: 1016 when usingLOCK TABLES

hitidea是一个有很多数据表的数据库(Wordpress MU),搜索了一下,发现只要在mysqldump的时候加上–lock-tables=false就可以解决问题。

零、用户管理:

1、新建用户:

>CREATEUSER name IDENTIFIED BY ‘ssapdrow‘;

2、更改密码:

>SETPASSWORD FOR name=PASSWORD(‘fdddfd‘);

3、权限管理

>SHOWGRANTS FOR name;    //查看name用户权限

>GRANTSELECT ON db_name.* TO name;//给name用户db_name数据库的所有权限

>REVOKESELECT ON db_name.* TO name;//GRANT的反操作,去除权限;

一、数据库操作: 

1、查看数据库:

>SHOWDATABASES;

2、创建数据库:

>CREATEDATABASE db_name;//db_name为数据库名

3、使用数据库:

>USEdb_name;

4、删除数据库:

>DROPDATABASE db_name;

二、创建表:

1、创建表:

>CREATETABLE table_name;

>idTINYINT UNSIGNED NOT NULL AUTO_INCREMENT,//id值,无符号、非空、递增——唯一性,可做主键。

>nameVARCHAR(60) NOT NULL

>scoreTINYINT UNSIGNED NOT NULL DEFAULT 0,//设置默认列值

>PRIMARYKEY(id)

>ENGINE=InnoDB//设置表的存储引擎,一般常用InnoDB和MyISAM;InnoDB可靠,支持事务;MyISAM高效不支持全文检索

>DEFAULTcharset=utf8;//设置默认的编码,防止数据库中文乱码

    如果有条件的创建数据表还可以使用  >CREATE TABLE IF NOT EXISTS tb_name(........

2、复制表:

>CREATETABLE tb_name2 SELECT * FROM tb_name;

    或者部分复制:

>CREATETABLE tb_name2 SELECT id,name FROM tb_name;

3、创建临时表:

>CREATETEMPORARY TABLE tb_name(这里和创建普通表一样);

4、查看数据库中可用的表:

>SHOWTABLES;

5、查看表的结构:

>DESCRIBEtb_name;

    也可以使用:

>SHOWCOLUMNS in tb_name; //from也可以

6、删除表:

>DROP[ TEMPORARY ] TABLE [ IF EXISTS ] tb_name[ ,tb_name2.......];

    实例:

>DROPTABLE IF EXISTS tb_name;

7、表重命名:

>RENAMETABLE name_old TO name_new;

    还可以使用:

>ALTERTABLE name_old RENAME name_new;

三、修改表:

1、更改表结构:

>ALTERTABLE tb_name ADD[CHANGE,RENAME,DROP] ...要更改的内容...

    实例:

>ALTERTABLE tb_name ADD COLUMN address varchar(80) NOT NULL;

>ALTERTABLE tb_name DROP address;

>ALTERTABLE tb_name CHANGE score score SMALLINT(4) NOT NULL;

四、插入数据:

1、插入数据:

>INSERTINTO tb_name(id,name,score)VALUES(NULL,‘张三‘,140),(NULL,‘张四‘,178),(NULL,‘张五‘,134);

    这里的插入多条数据直接在后边加上逗号,直接写入插入的数据即可;主键id是自增的列,可以不用写。

2、插入检索出来的数据:

>INSERTINTO tb_name(name,score) SELECT name,score FROM tb_name2;

五、更新数据:

1、指定更新数据:

>UPDATEtb_name SET score=189 WHERE id=2;

>UPDATEtablename SET columnName=NewValue [ WHERE condition ]

六、删除数据:

1、删除数据:

>DELETEFROM tb_name WHERE id=3;

七、条件控制:

1、WHERE 语句:

>SELECT* FROM tb_name WHERE id=3;

2、HAVING 语句:

>SELECT* FROM tb_name GROUP BY score HAVING count(*)>2

3、相关条件控制符:

=、>、<、<>、IN(1,2,3......)、BETWEEN a AND b、NOT

AND、OR

Linke()用法中      %  为匹配任意、  _  匹配一个字符(可以是汉字)

ISNULL 空值检测

 八、MySQL的正则表达式:

1、Mysql支持REGEXP的正则表达式:

>SELECT* FROM tb_name WHERE name REGEXP ‘^[A-D]‘   //找出以A-D 为开头的name

2、特殊字符需要转义。

 九、MySQL的一些函数:

1、字符串链接——CONCAT()

>SELECTCONCAT(name,‘=>‘,score) FROM tb_name

2、数学函数:

AVG、SUM、MAX、MIN、COUNT;

3、文本处理函数:

TRIM、LOCATE、UPPER、LOWER、SUBSTRING

4、运算符:

+、-、*、\

5、时间函数:

DATE()、CURTIME()、DAY()、YEAR()、NOW().....

 十、分组查询:

1、分组查询可以按照指定的列进行分组:

>SELECTCOUNT(*) FROM tb_name GROUP BY score HAVING COUNT(*)>1;

2、条件使用Having;

3、ORDER BY 排序:

ORDERBY DESC|ASC=>按数据的降序和升序排列

十一、UNION规则——可以执行两个语句(可以去除重复行)

十二、全文检索——MATCHAGAINST

1、SELECTMATCH(note_text)AGAINST(‘PICASO‘) FROM tb_name;

2、InnoDB引擎不支持全文检索,MyISAM可以;

 十三、视图

1、创建视图

>CREATEVIEW name AS SELECT * FROM tb_name WHERE ~~ ORDER BY ~~;

2、视图的特殊作用:

a、简化表之间的联结(把联结写在select中);

b、重新格式化输出检索的数据(TRIM,CONCAT等函数);

c、过滤不想要的数据(select部分)

d、使用视图计算字段值,如汇总这样的值。

十四、触发器:

  触发器是指在进行某项指定操作时,触发触发器内指定的操作;

1、支持触发器的语句有DELETE、INSERT、UPDATE,其他均不支持

2、创建触发器:

>CREATETRIGGER trig AFTER INSERT ON ORDERS FOR EACH ROW SELECT NEW.orser_name;

>INSERT语句,触发语句,返回一个值

3、删除触发器

>DROPTRIGGER trig;

   三、MySQL拷贝表的几种方式

CREATE TABLE IF NOT EXISTS `admin` (

`id` int(6) unsigned NOT NULL auto_increment,

`username` varchar(50) NOT NULL default ‘‘,

`password` varchar(100) default NULL,

PRIMARY KEY (`id`)

) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=4 ;

1. 下面这个语句会拷贝表结构到新表newadmin中。 (不会拷贝表中的数据)

CREATE TABLE newadmin LIKE admin

2. 下面这个语句会拷贝数据到新表中。 注意:这个语句其实只是把select语句的结果建一个表。所以newadmin这个表不会有主键,索引。

CREATE TABLE newadmin AS

(   SELECT * FROM admin   )

3. 如果你要真正的复制一个表。可以用下面的语句。

CREATE TABLE newadmin LIKE admin;

INSERT INTO newadmin SELECT * FROM admin;

4. 我们可以操作不同的数据库。

CREATE TABLE newadmin LIKE shop.admin;

CREATE TABLE newshop.newadmin LIKE shop.admin;

5. 我们也可以拷贝一个表中其中的一些字段。

CREATE TABLE newadmin AS

(

SELECT username, password FROM admin

)

6. 我们也可以讲新建的表的字段改名。

CREATE TABLE newadmin AS

(

SELECT id, username AS uname, password AS pass FROM admin

)

7. 我们也可以拷贝一部分数据。

CREATE TABLE newadmin AS

( SELECT * FROM admin WHERE LEFT(username,1) = ‘s‘ )

8. 我们也可以在创建表的同时定义表中的字段信息。

CREATE TABLE newadmin ( id INTEGER NOT NULL AUTO_INCREMENT PRIMARY KEY ) AS ( SELECT * FROM admin )


时间: 2024-08-07 16:58:47

工作总结-MySQL相关的相关文章

关于MySQL相关的查看显示信息:

关于MySQL相关的查看显示信息: 数据库范围: 一.查看所有的数据库:(仅仅是看数据库数量与名字) mysql> show databases; 二.查看某个数据库的创建信息:(主要看数据库的选项如字符集) 这里我们锁定php25数据库(use php25;) mysql> show create database 数据表范围(事先use php25;以class数据表为例): 三.查看该数据库里所有的数据表:(只看数据表的数量与名字) mysql> show tables; 四.查看

【Oracle 集群】ORACLE DATABASE 11G RAC 知识图文详细教程之RAC 工作原理和相关组件(三)

RAC 工作原理和相关组件(三) 概述:写下本文档的初衷和动力,来源于上篇的<oracle基本操作手册>.oracle基本操作手册是作者研一假期对oracle基础知识学习的汇总.然后形成体系的总结,一则进行回顾复习,另则便于查询使用.本图文文档亦源于此.阅读Oracle RAC安装与使用教程前,笔者先对这篇文章整体构思和形成进行梳理.由于阅读者知识储备层次不同,我将从Oracle RAC安装前的准备与规划开始进行整体介绍安装部署Oracle RAC.始于唐博士指导,对数据库集群进行配置安装,前

MySQL相关操作知识

1.解决客户端联不上MySQL服务器的问题: GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '' WITH GRANT OPTION; FLUSH PRIVILEGES; 2.登陆MySQL: mysql -u root -p 123456 3.查看所有数据库:show databases; //注意s和分号 4.选择数据库:use 库名 5.查看当前选择的数据库:select database(); //注意分号 6.列出所选数

mysql 相关ppt资料

mysql 相关ppt资料 个人PPT分享 发表回复 个人最近几年内整理过的PPT,都放在百度文库上了,大家可以看看 :) M?y?S?Q?L? ?t?p?c?h?测?试?工?具?简?要?手?册 高?效?L?i?n?u?x? ?S?A? P?C?服?务?器?阵?列?卡?管?理?简?易?手?册? 服?务?器?基?准?测?试 M?y?S?Q?L?数?据?库?设?计?.?优?化 M?y?S?Q?L?之?设?计?.?优?化?.?运?维 http://wenku.baidu.com/view/96f978

Mysql相关问题-----1045 Access denied for user &#39;root&#39;@&#39;localhost&#39; (using password: YES)报错

MySQL 连接错误,使用Navicat连接MySQL出现错误:1045 Access denied for user 'root'@'localhost' (using password: YES) 解决方案: 1.编辑mysql配置文件my.ini 在mysql的安装目录下 ,在[mysqld]这个条目下加入 skip-grant-tables 保存退出后重启mysql [mysqld] #作用是跳过登录的验证 #skip-grant-tables port = 3306 basedir=C

mysql之mysql安装、初始化,以及mysql相关命令的使用

安装mysql:    1.yum        #wget http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm 从mysql官网上下载mysql的repo        #yum -y install mysql-server 2.二进制源码包        #tar -xf mysql-xxx.tar.bz2        #cd mysql-xxx        #make && make install

Paramiko和MySQL相关-day10

本章内容 paramiko基本使用 MySQL基础语法 pymysql模块使用 Python操作memcached Python操作redis 一.paramiko模块基本使用 paramiko是Python的一个模块,如果电脑没有装这个模块的话需要使用pip3 install paramiko.paramiko模块的主要功能是连接服务器并在远端服务器执行命令并把结果返回到本地.目前很多自动化工具也用的是该模块,比如ansible. - 基于SSH密码登陆 import paramiko #创建

mysql相关问题

1.如何防止sql注入 检查变量类型,如果是整形就使用intval方法转为int string类型使用addslashes函数过滤特殊字符(它会在指定的预定义字符前添加反斜杠转义,这些预定义的字符是:单引号 (') 双引号 (") 反斜杠 (\) NULL) 如果是使用的mysql,使用 mysqli_real_escape_string过滤字符,但是还不能完全防止, 其实,绑定变量使用预编译语句是预防SQL注入的最佳方式,使用预编译的SQL语句语义不会发生改变. https://www.zhi

[原创]java WEB学习笔记44:Filter 简介,模型,创建,工作原理,相关API,过滤器的部署及映射的方式,Demo

本博客为原创:综合 尚硅谷(http://www.atguigu.com)的系统教程(深表感谢)和 网络上的现有资源(博客,文档,图书等),资源的出处我会标明 本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱好者,互联网技术发烧友 微博:伊直都在0221 QQ:951226918 ---------------------------------