MySQL相关概念:MySQL是单进程多线程接收应用的请求。

SQL/MySQL

1.事务,隔离,并发控制,锁

2.用户和权限

3.监控

   STATUS

4.索引类型:查询

   VARIABLES

5.备份和恢复

6.复制功能

7.集群


DML:数据操作语言

   INSERT:插入

   DELETE:删除

   SELECT:挑选,选择,查询

   UPDATE:更新,修改


DDL:数据定义语言

   CREATE:创建

   DROP:删除

   ALTER:修改


DCL:数据控制语言

  GRANT:授权

  REVOKE:取消权限


MySQL插件式存储引擎:

 MyISAM:不支持事务处理,应用于查询比较多,但修改比较少的数据存储仓库

   该引擎中,每个表有三个文件:

         .frm: 表结构文件

         .MYD: 表数据文件

         .MYI: 表索引文件

InnoDB:支持事务处理,查询没有那么快,应用于经常需要修改的,比如论坛数据存储

   该引擎所以表共享一个表空间文件;

   建议:每表一个独立的表空间文件;

         .frm:表结构文件

         .ibd:表空间(包含表数据和表索引文件)

为mysql打开innodb每表建立一个独立表空间文件的设置:

编辑配置文件/etc/my.cnf添加一行:

vim /etc/my.cnf

....

innoda_file_per_table = 1    #1为启用,0为禁用


 MYSQL数据库功能:

   1、数据库创建、删除

   2、创建表、删除表、修改表

   3、索引的创建、删除

   4、用户和权限

   5、数据增、删、改

   6、查询



MySQL二进制程序:(mysql数据库的database存放路径为/var/lib/mysql目录中)


   客户端命令:mysql

    参数:

       -u USERNAME     #以那个用户连接mysql (不指定默认用户为root)

       -p           #指定输入用户密码   (不指定默认是空密码)

       -h MYSQL_SERVER  #指定mysql服务器主机 (不指定默认为localhost本机)

       -D DATA       #连接mysql的时候指定默认的数据库

  Usage:  mysql -D mydb -uroot -p -h 10.109.134.249   -uroot 指定用户 

       -p:输入用户密码  -h:指定连接那台mysql服务器(ip地址)

       -D: 指定登录mysql默认的数据库(相当于在客户端内输入USE mydb;命令)


    MySQL客户端:

        交互式模式:一步一步的手动输入执行

        批处理模式:执行mysql脚本,批处理执行


* MySQL客户端工具:

mysql

       mysqldump:常见的mysql备份工具

       mysqladmin:mysql管理工具 

           mysqladmin extended-status:显示状态变量

mysqladmin status

                    --sleep N:显示频率

                    --count N:显示多个状态

            mysqladmin variables: 显示服务器变量;

            mysqladmin flush-privileges:让mysqld重读授权表,等同于reload;

            mysqladmin flush-status:重置大多数服务器状态变量;

            mysqladmin flush-logs:二进制和中继日志滚动;

            mysqladmin flush-hosts:刷新主机列表;

            mysqladmin refresh:相当于同时执行flush-hosts和flush-logs;

            mysqladmin shutdown: 关闭mysql服务器进程;

            mysqladmin version: 服务器版本及当前状态信息;

            mysqladmin start-slave:启动复制,启动从服务器复制线程;

            mysqladmin stop-slave: 关闭复制,关闭从服务器复制线程。

           格式:

mysqladmin [option] command [arg] [command [arg]] ...
             Usage:mysqladmin -uroot -p password 'NEW_PASS' 
[root@lamp ~]# mysqladmin create hellodb;
[root@lamp ~]# mysql
.........
mysql> SHOW DATABASES;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| hellodb            |  #通过mysqladmin可以直接管理mysql
| mydb               |
| mysql              |
| performance_schema |
| test               |
| testdb             |
+--------------------+
7 rows in set (0.00 sec)

       mysqlcheck:检查工具   

       mysqlimport:接口工具


    MySQL非客户端工具:

        myisamchk

        myisampack


交互式模式中的命令类别:

客户端命令:?(获取帮助) quit(退出mysql客户端)

             \c:提前终止语句执行,但是必须在结束符前,否则该条指令依旧执行。

             \g:无论语句结束符是什么,直接将此语句送至服务器端执行;

             \G:无论语句结束符是什么,直接将此语句送至服务器端执行,而且结果以竖排显示;

             \! COMMAND:执行shell命令;

             \W:语句执行结束后显示警告信息;

服务器端命令:都必须使用语句结束符,默认结束符为分号;SHOW DATABASES; #查看数据库 

             \d:定义语句结束符 (默认语句结束符为分号,可以设定为其他)

             help KEYWORD:获取关键字命令的帮助信息;

mysql>help SELECT;  #获取SELECT命令的相关帮助信息;

Name: 'SELECT'

Description:

Syntax:

SELECT     

在mysql客户端中,名称补全命令: rehash

修改/etc/my.cnf配置文档,使得命令补全永久有效;

mysqlimport 命令安装_开发工具

mysql>命令rehash以后可以直接通过tab键补全命令 (重新打开mysql失效,需重新设置)

mysql> U   输入一个大U然后按tab键就有很多以U开头的命令出来

UCASE                UNION                UPDATE               USING
UNCOMMITTED          UNIQUE               UPGRADE              UTC_DATE
UNCOMPRESS           UNIQUE_USERS         UPPER                UTC_TIME
UNCOMPRESSED_LENGTH  UNIX_TIMESTAMP       USAGE                UTC_TIMESTAMP
UNDEFINED            UNKNOWN              USE                  UUID
UNDO                 UNLOCK               USER                 
UNHEX                UNSIGNED             USER_RESOURCES       
UNICODE              UNTIL                USE_FRM


   关系数据库对象:库、表、索引、视图、约束、存储过程、存储函数、触发器、游标、

             用户、权限、事务。


   数据库最基本的对象-->表:行(row),列(field,column)


   服务端命名:mysqld 


Mysql常用命令不区分大小写,但是需保持一致(都大写或者都小写):


** mysql > help COMMOND    #可以通过help+命令来获取命令帮助。

-----------------------------------------------------------

Usage:


mysql> help CREATE TABLE   #获取命令帮助

Name: 'CREATE TABLE'

Description:

Syntax:

CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name

    (create_definition,...)

    [table_option] ...

Or:

CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name

    [(create_definition,...)]

    [table_option] ...

    select_statement

Or:

CREATE [TEMPORARY] TABLE [IF NOT EXISTS] tbl_name

    { LIKE old_tbl_name | (LIKE old_tbl_name) }

-----------------------------------------------------------------  

DDL:定义数据对象,关键字:CREATE(创建)、ALTER(修改)、DROP(删除)
 * 这些命令主要作用的范围:数据库,表,表的字段
 创建用户:
               CREATE USER 'USERNAME'@'HOST' IDENTIFIED BY 'PASSWORD';  #可以不指定密码
                       USERNAME:用户名        HOST:主机
                        IDENTIFIED:指定密码   BY‘密码’
 删除用户:
                DROP USER 'USERNAME'@'HOST';  删除用户(需具体指定删除那个用户)
         
 为用户设定密码方法:(建议用1和3这两种方法设定或修改密码)
        *1、mysql>SET PASSWORD FOR 'USERNAME'@'HOST'=PASSWORD('PASSWORD')
                Usage: SET PASSWORD FOR 'root'@'localhost'=PASSWORD('123456')  #设定
                                                                                        root@localhost用户名密码为123456
          2、直接在linux下输入,不需要进入mysql客户端输入(此方法容易导致修改相同用户的密码):
                   # mysqladmin -uUSERNAME -hHOST -p password 'password' #设定用户USERNAME
                   主机HOST 密码为password
                 Usage: [root@johntest ~]#mysqladmin -uroot -h10.109.134.249 -p password 
                   '123456'   #设定10.109.134.249主机的root用户密码为123456        
                   
          *3、直接修改表中的内容:
mysql>UPDATE user SET password=PASSWORD('password') WHERE USER='root' 
              AND Host='10.109.134.249';     #设定 主机10.109.134.249的数据库root用户密码
              AND与关系(需同时满足) OR或关系(两者满足一个即可) NOT非关系(取反)
HOST可以使用的格式:
                           IP , HOSTNAME(主机名),NETWORK(网络地址),通配符(需用'通配符'引号)
                           通配符包含:
                                     _:匹配任意单个字符,172.16.0._
                                    %:匹配任意字符
    Usage:
        创建数据库:CREATE DATABASE IF NOT EXISTS db_name;   如果数据库不存在
                            创建db_name数据库
        创建表:CREATE TABLE tb_name(col1,col2,...);  创建tb_name表  col表示字段
        查看库中的表:SHOW TABLES FROM db_name  查看db_name数据库中的表
        查看表的结构:DESC tb_name 查看tb_name表的结构      
        删除表:DROP TABLE IF EXISTS tb_name  如果表存在删除tb_name表    
        
  修改表:ALTER TABLE tb_name
MODIFY:修改某字段(变更属性,权限)
                  CHANGE: 改变某字段 (变更字段名称)
                  ADD:增加某字段
                  DROP : 删除某字段
     Usage:  ALTER TABLE students ADD course VARCHAR(100);      #对表students新增course字段且VARCHAR(100)空间长度为100

DML:数据操纵语言,关键字:INSERT(插入)、DELETE(删除)、UPDATE(更新、修改)
    * 这些命令主要作用的范围:针对表中字段的值进行操作
      插入数据: INSERT INTO tb_name (col1,col2,...) VALUES|VALUE ('STRING',NUM,...),                                           ('STRING',NUM,...);    col表示字段
      更新、修改数据:  UPDATE tb_name SET column=value WHERE ..... ;   WHERE表示修改那个
                             具体数据,并不是把column整个这个字段的值修改为value.
       Usage: UPDATE students SET Course='Jiuyinzhenjing' WHERE Name='LHC';                                               #表示修改表students中Name值为LHC的Course字段的值变为‘Jiuyinzhenjing’
                       
DCL:数据库控制语言 ,关键字:GRANT(允许、授权)、REVOKE(取消权限)
                ALL PRIVILEGES:表示所有权限
     GRANT给用户授权:       
         Usage:   GRANT pri1,pri2,... ON DB_NAME.TB_NAME TO 'USERNAME'@'HOST' IDENTIFIED BY 'PASSWORD'  #给DB_NAME数据库中的TB_NAME表中的USERNAME@'HOST'用户授予pri1,pri2等权限也可以设定密码IDENTIFIED BY 'PASSWORD'(如果该用户不存在,会直接新建该用户并授权)
      REVOKE取消用户权限:
         Usage:  REVOKE pri1,pri2,... ON DB_NAME.TB_NAME FROM 'USERNAME'@'HOST';    #取消DB_NAME数据库中的TB_NAME表中的'USERNAME'@'HOST'用户的pri1,pri2等权限
查看用户的授权: SHOW GRANTS FOR 'USERNAME'@'HOST';
刷新用户权限列表: FLUSH PRIVILEGES;
DQL:数据库查询语言,关键字:SELECT(挑选,选择)
SELECT 字段 FROM tb_name WHERE CONDITION;
       *:表示所有字段
       WHERE:没有条件表示显示所有行;
Usage: SELECT Name,Course FROM students WHERE Gender='M';
                  #表示只选择表students中的Gender字段值为M的Name和Course字段的信息


一、编译安装前准备

安装前需确认开发环境组是否安装:Development Tools(开发工具)和Development Libraries(开发库)

[root@lamp ~]# yum groupinstall "Development Tools"
Loaded plugins: refresh-packagekit, rhnplugin
This system is not registered with RHN.
RHN support will be disabled.
Setting up Group Process
[root@lamp ~]# yum groupinstall "Development Libraries"


** 由于mysql数据库随着时间的增长,数据会越来越大,所以应该把数据库数据放置在一个单独的可扩展的分区卷上,以便后期管理和备份,挂载在逻辑卷是比较好的方法如下:

[root@lamp ~]# fdisk /dev/sdb  #新建分区

Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel

Building a new DOS disklabel with disk identifier 0xef7e9b34.

Changes will remain in memory only, until you decide to write them.

After that, of course, the previous content won't be recoverable.


Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)


WARNING: DOS-compatible mode is deprecated. It's strongly recommended to

         switch off the mode (command 'c') and change display units to

         sectors (command 'u').


Command (m for help): p


Disk /dev/sdb: 21.5 GB, 21474836480 bytes

255 heads, 63 sectors/track, 2610 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk identifier: 0xef7e9b34


   Device Boot      Start         End      Blocks   Id  System


Command (m for help): n

Command action

   e   extended

   p   primary partition (1-4)

p

Partition number (1-4): 1

First cylinder (1-2610, default 1): 

Using default value 1

Last cylinder, +cylinders or +size{K,M,G} (1-2610, default 2610): +10G


Command (m for help): T

Selected partition 1

Hex code (type L to list codes): 8e  

Changed system type of partition 1 to 8e (Linux LVM)


Command (m for help): p


Disk /dev/sdb: 21.5 GB, 21474836480 bytes

255 heads, 63 sectors/track, 2610 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk identifier: 0xef7e9b34


   Device Boot      Start         End      Blocks   Id  System

/dev/sdb1               1        1306    10490413+  8e  Linux LVM


Command (m for help): w

The partition table has been altered!


Calling ioctl() to re-read partition table.

Syncing disks. 

[root@lamp ~]# partprobe /dev/sdb  #通知内核重读sdb分区

[root@lamp ~]# fdisk -l   #查看分区

Disk /dev/sda: 32.2 GB, 32212254720 bytes

255 heads, 63 sectors/track, 3916 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk identifier: 0x000149e0


   Device Boot      Start         End      Blocks   Id  System

/dev/sda1   *           1          66      524288   83  Linux

Partition 1 does not end on cylinder boundary.

/dev/sda2              66        1341    10240000   83  Linux

/dev/sda3            1341        2106     6144000   83  Linux

/dev/sda4            2106        3917    14547968    5  Extended

/dev/sda5            2106        2361     2048000   83  Linux

/dev/sda6            2361        2552     1536000   82  Linux swap / Solaris

/dev/sda7            2552        3917    10960896   83  Linux


Disk /dev/sdb: 64.4 GB, 64424509440 bytes

255 heads, 63 sectors/track, 7832 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk identifier: 0x0002d296


   Device Boot      Start         End      Blocks   Id  System

/dev/sdb1               1        2612    20980858+  8e  Linux LVM


[root@lamp ~]# pvcreate /dev/sdb1   #先把/dev/sdb1分区建立一个pv物理卷

  Physical volume "/dev/sdb1" successfully created

[root@lamp ~]# pvs  #查看物理卷 

  PV         VG   Fmt  Attr PSize  PFree 

  /dev/sdb1       lvm2 a-   10.00g 10.00g

[root@lamp ~]# vgcreate myvg /dev/sdb1   #以/dev/sdb1分区创建myvg卷组 

  Volume group "myvg" successfully created

[root@lamp ~]# vgs  #查看卷组

  VG   #PV #LV #SN Attr   VSize  VFree 

  myvg   1   0   0 wz--n- 10.00g 10.00g

[root@lamp ~]# lvcreate -n mydata -L 10G myvg  #在卷组myvg中建立一个大小为10G,

                                 名称为mydata 的逻辑卷

  Logical volume "mydata" created


[root@lamp ~]# lvs    #查看逻辑卷  

  LV     VG   Attr   LSize Origin Snap%  Move Log Copy%  Convert

  mydata myvg -wi-a- 5.00g     


[root@lamp ~]# mke2fs -t ext4 /dev/myvg/mydata   #格式化mydata逻辑卷

mke2fs 1.41.12 (17-May-2010)

文件系统标签=

操作系统:Linux

块大小=4096 (log=2)

分块大小=4096 (log=2)

Stride=0 blocks, Stripe width=0 blocks

327680 inodes, 1310720 blocks

65536 blocks (5.00%) reserved for the super user

第一个数据块=0

Maximum filesystem blocks=1342177280

40 block groups

32768 blocks per group, 32768 fragments per group

8192 inodes per group

Superblock backups stored on blocks: 

32768, 98304, 163840, 229376, 294912, 819200, 884736


正在写入inode表: 完成                            

Creating journal (32768 blocks): 完成

Writing superblocks and filesystem accounting information: 完成

[root@lamp ~]# mkdir /mydata   #建立一个目录作为挂载点

[root@lamp ~]# vim /etc/fstab    #设定逻辑卷开机自动挂载


 # /etc/fstab

 # Created by anaconda on Tue Feb 14 01:11:01 2017

 #

 # Accessible filesystems, by reference, are maintained under '/dev/disk'

 # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info

 #


 tmpfs          /dev/shm       tmpfs   defaults      0 0

 devpts          /dev/pts       devpts  gid=5,mode=620  0 0

 sysfs          /sys         sysfs   defaults       0 0

 proc           /proc        proc    defaults       0 0

/dev/myvg/mydata   /mydata    ext4    defaults        0 0  #新增该行内容


[root@lamp ~]# mount -a    #重读/etc/fstab硬盘挂载文件,使得新增的分区挂载成功

[root@lamp ~]# mount  #查看已经挂载的分区

/dev/sda2 on / type ext4 (rw)

proc on /proc type proc (rw)

sysfs on /sys type sysfs (rw)

devpts on /dev/pts type devpts (rw,gid=5,mode=620)

tmpfs on /dev/shm type tmpfs (rw,rootcontext="system_u:object_r:tmpfs_t:s0")

/dev/sda1 on /boot type ext4 (rw)

/dev/sda5 on /home type ext4 (rw)

/dev/sda3 on /usr/local type ext4 (rw)

/dev/sda6 on /var type ext4 (rw)

none on /proc/sys/fs/binfmt_misc type binfmt_misc (rw)

sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw)

/dev/mapper/myvg-mydata on /mydata type ext4 (rw)  #逻辑卷mydata已经挂载到/mydata目录


[root@lamp ~]# mkdir /mydata/data

[root@lamp ~]# ll /mydata

总用量 20

drwxr-xr-x. 2 root root  4096  2月 17 17:30 data

drwx------. 2 root root 16384  2月 17 15:11 lost+found


[root@lamp ~]# groupadd -r mysql  #-r建立一个系统组

groupadd: group 'mysql' already exists

[root@lamp ~]# useradd -r -g mysql -s /sbin/nologin mysql #建立一个系统用户不能登录

useradd: user 'mysql' already exists

[root@lamp ~]# id mysql   #查看用户信息

uid=27(mysql) gid=27(mysql) groups=27(mysql)

[root@lamp ~]# chown -R mysql.mysql /mydata/data/  #更改文件夹属主和属组-R递归

[root@lamp ~]# ll /mydata

总用量 20

drwxr-xr-x. 2 mysql mysql  4096  2月 17 17:30 data

drwx------. 2 root  root  16384  2月 17 15:11 lost+found

[root@lamp ~]# chmod o-rx /mydata/data/   #删除/data组其他人的读和执行权限

[root@lamp ~]# ll /mydata

总用量 20

drwxr-x---. 2 mysql mysql  4096  2月 17 17:30 data

drwx------. 2 root  root  16384  2月 17 15:11 lost+found


二、编译安装cmake-2.8.8.tar.gz:

[root@lamp ~]# tar vxf cmake-2.8.8.tar.gz

[root@lamp ~]# cd cmake-2.8.8

[root@lamp cmake-2.8.8]# ./configure

[root@lamp cmake-2.8.8]# make && make install

...........

-- Installing: /usr/local/doc/cmake-2.8/ccmake.docbook

-- Installing: /usr/local/share/aclocal/cmake.m4     #编译安装cmake完成


三、使用cmake编译安装mysql5.5.28:

清理此前的编译所生成的文件,则需使用如下命令:make clean 

[root@lamp ~]# tar vxf mysql-5.5.28.tar.gz

[root@lamp ~]# cd mysql-5.5.28

[root@lamp mysql-5.5.28]# cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/mydata/data 

-DSYSCONFDIR=/etc -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 

-DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DWITH_SSL=system -DWITH_ZLIB=system 

-DWITH_LIBWRAP=0 -DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DDEFAULT_CHARSET=utf8

-DDEFAULT_COLLATION=utf8_general_ci    #-DCMKE_INSTALL_PREFIX=安装路径,-DMYSQL_DATADIR=数据存放路径,-DSYSCONFDIR=配置文件路径,-DWITH_INNOBASE_STORAGE_ENGINE=1(是否包含INNOBASE引擎1表示包含0表示不包含),-DWITH_ARCHIVE_STORAGE_ENGINE=1(是否包含ARCHIVE引擎1表示包含0表示不包含),

-DWITH_BLACKHOLE_STORAGE_ENGINE=1(是否包含BLACKHOLE空洞引擎1表示包含0表示不包含),



.........

-- Performing Test HAVE_PEERCRED - Success

-- Configuring done

-- Generating done

-- Build files have been written to: /root/mysql-5.5.28   #编译完成

[root@lamp mysql-5.5.28]# make

.........

Linking CXX static library libsql.a

[ 98%] Built target sql

Scanning dependencies of target mysqld

[ 99%] Building CXX object sql/CMakeFiles/mysqld.dir/main.cc.o

Linking CXX executable mysqld

[ 99%] Built target mysqld

Scanning dependencies of target udf_example

[ 99%] Building C object sql/CMakeFiles/udf_example.dir/udf_example.c.o

Linking C shared module udf_example.so

[ 99%] Built target udf_example

Scanning dependencies of target my_safe_process

[100%] Building CXX object mysql-test/lib/My/SafeProcess/CMakeFiles/my_safe_process.dir/safe_process.cc.o

Linking CXX executable my_safe_process

[100%] Built target my_safe_process           #make完成,执行make install

[root@lamp mysql-5.5.28]# make install

.......

-- Installing: /usr/local/mysql/man/man1/mysql.1

-- Installing: /usr/local/mysql/man/man1/mysql-test-run.pl.1

-- Installing: /usr/local/mysql/man/man8/mysqld.8      #安装mysql完成


四、配置mysql脚本让其开机自动启动及运行:

[root@lamp mysql-5.5.28]#

[root@lamp mysql-5.5.28]# cd /usr/local/mysql

[root@lamp mysql]# scripts/mysql_install_db --user=mysql --datadir=/mydata/data  #初始化mysql,指定用户和数据目录

Installing MySQL system tables...

OK

Filling help tables...

OK


To start mysqld at boot time you have to copy

support-files/mysql.server to the right place for your system


PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !

To do so, start the server, then issue the following commands:


./bin/mysqladmin -u root password 'new-password'

./bin/mysqladmin -u root -h lamp password 'new-password'


Alternatively you can run:

./bin/mysql_secure_installation


which will also give you the option of removing the test

databases and anonymous user created by default.  This is

strongly recommended for production servers.


See the manual for more instructions.


You can start the MySQL daemon with:

cd . ; ./bin/mysqld_safe &


You can test the MySQL daemon with mysql-test-run.pl

cd ./mysql-test ; perl mysql-test-run.pl

Please report any problems with the ./bin/mysqlbug script!   #初始化完成 


[root@lamp mysql]# mv /etc/my.cnf /etc/my.cnf.back   #把原系统中配置文档改名

[root@lamp mysql]# cp support-files/my-large.cnf /etc/my.cnf  #复制配置文档至/etc目录

[root@lamp mysql]# cp support-files/mysql.server /etc/init.d/mysqld  #复制启动脚本至/etc/init.d目录中

[root@lamp mysql]# chkconfig --add mysqld  #把mysqld启动脚本加到开机启动列表

[root@lamp mysql]# chkconfig --list mysqld  #查看mysqld脚本是否开机启动

mysqld         0:off1:off2:on3:on4:on5:on6:off

[root@lamp mysql]# service mysqld start   #启动mysql脚本

Starting MySQL...                              [  OK  ]

[root@lamp mysql]# vim /etc/profile.d/mysql.sh  #编辑环境变量使得mysql命令在PATH变量中

export PATH=$PATH:/usr/local/mysql/bin    #新增该行内容

[root@lamp mysql]# . /etc/profile.d/mysql.sh   #读取mysql.sh脚本的内容

[root@lamp mysql]# echo $PATH  #输出PATH变量内容

/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/mysql/bin    #刚才新增到PATH变量中的路径已生效


五、mysql的启动及相关应用解析:

[root@lamp mysql]# mysql   #启动mysql客户端程序

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

Your MySQL connection id is 1

Server version: 5.5.28-log Source distribution


Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.


Oracle is a registered trademark of Oracle Corporation and/or its

affiliates. Other names may be trademarks of their respective

owners.


Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.


mysql>                #正常启动mysql客户端程序
mysql> SHOW DATABASES;  #查看基本数据

+--------------------+
| Database           |
+--------------------+
| information_schema |
| mysql              |
| performance_schema |
| test               |
+--------------------+
4 rows in set (0.00 sec)

mysql> SHOW ENGINES;  #查看支持的引擎


| Engine  | Support | Comment | Transactions | XA | Savepoints |

| MyISAM  | YES   | MyISAM storage engine  | NO   | NO   | NO     |

| PERFORMANCE_SCHEMA | YES     | Performance Schema    | NO    | NO   | NO |

| InnoDB       | DEFAULT | Supports transactions, row-level locking, and foreign keys     | YES          | YES  | YES        |

| BLACKHOLE          | YES     | /dev/null storage engine (anything you write to it disappears) | NO           | NO   | NO         |

| CSV                | YES     | CSV storage engine                    

| MRG_MYISAM         | YES     | Collection of identical MyISAM tables         |

| ARCHIVE            | YES     | Archive storage engine                                         | NO           | NO   | NO         |

| MEMORY             | YES     | Hash based, stored in memory, useful for temporary tables      | NO           | NO   | NO         |

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

8 rows in set (0.00 sec)


 

mysql> \q   #退出mysql

Bye

[root@lamp mysql]# vim /etc/my.cnf  #修改mysql的配置文档

mysqlimport 命令安装_开发工具_02

[root@lamp mysql]# mysql

mysql> USE mysql;   #设定mysql数据库为默认database

Database changed

mysql> SELECT User,Host,Password FROM user;  #查询user表中关于User,Host,密码三个字段的信息

+------+-----------+----------+
| User | Host      | Password |
+------+-----------+----------+
| root | localhost |         |
| root | lamp    |         |
| root | 127.0.0.1 |         |
| root | ::1     |         |
|    | localhost |         |
|    | lamp    |         |
+------+-----------+----------+
6 rows in set (0.00 sec)

mysql> DROP USER ''@localhost;  #删除初始的匿名登录用户

Query OK, 0 rows affected (0.00 sec)

mysql> DROP USER ''@lamp;   #删除初始的匿名登录用户

Query OK, 0 rows affected (0.00 sec)

mysql> SELECT User,Host,Password FROM user; #再次查看,匿名用户已经删除成功

+------+-----------+----------+
| User | Host      | Password |
+------+-----------+----------+
| root | localhost |         |
| root | lamp    |         |
| root | 127.0.0.1 |         |
| root | ::1     |         |
+------+-----------+----------+
4 rows in set (0.00 sec)

mysql> UPDATE user SET Password=PASSWORD('123456') WHERE user='root'; #设定root用户的密码

Query OK, 4 rows affected (0.02 sec)

Rows matched: 4  Changed: 4  Warnings: 0

mysql>#再次查看,所有root用户已经设置好密码

+------+-----------+-------------------------------------------+
| User | Host      | Password                     |
+------+-----------+-------------------------------------------+
| root | localhost | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
| root | lamp    | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9
| root | 127.0.0.1 | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
| root | ::1     | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
+------+-----------+-------------------------------------------+
4 rows in set (0.00 sec)

mysql> FLUSH PRIVILEGES;  #使设置立即生效

Query OK, 0 rows affected (0.00 sec)

[root@lamp mysql]# mysql  #再次登录mysql,提示错误,因为已经设定了密码。

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

[root@lamp mysql]# mysql -uroot -p  #从本机登录mysql,输入刚设定的密码

Enter password: 

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

Your MySQL connection id is 4

Server version: 5.5.28-log Source distribution


Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.


Oracle is a registered trademark of Oracle Corporation and/or its

affiliates. Other names may be trademarks of their respective

owners.


Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.


mysql>    #正常登录mysql

如何设定本机本地登录mysql不用输入密码:

在家目录下,新建一个.my.cnf文档,里面添加以下内容:


[root@lamp ~]# vim .my.cnf

[client]

user=root

host=localhost

password=123456


[root@lamp ~]# mysql  #这样即使root用户设定了密码,也可以不用输入密码直接读取家目录下面的.my.cnf的隐藏文件进行登录认证。

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

Your MySQL connection id is 6

Server version: 5.5.28-log Source distribution

Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its

affiliates. Other names may be trademarks of their respective

owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> \q 

mysqlimport 命令安装_mysql_03

以上三个文件是针对MyISAM引擎而言;

mysql> SHOW VARIABLES LIKE '%innodb%';  #查看关于innodb引擎的相关变量参数

+---------------------------------+------------------------+
| Variable_name                   | Value                  |
+---------------------------------+------------------------+
| have_innodb                     | YES                    |
| ignore_builtin_innodb           | OFF                    |
| innodb_adaptive_flushing        | ON                     |
| innodb_adaptive_hash_index      | ON                     |
| innodb_additional_mem_pool_size | 8388608                |
| innodb_autoextend_increment     | 8                      |
| innodb_autoinc_lock_mode        | 1                      |
| innodb_buffer_pool_instances    | 1                      |
| innodb_buffer_pool_size         | 134217728              |
| innodb_change_buffering         | all                    |
| innodb_checksums                | ON                     |
| innodb_commit_concurrency       | 0                      |
| innodb_concurrency_tickets      | 500                    |
| innodb_data_file_path           | ibdata1:10M:autoextend |
| innodb_data_home_dir            |                        |
| innodb_doublewrite              | ON                     |
| innodb_fast_shutdown            | 1                      |
| innodb_file_format              | Antelope               |
| innodb_file_format_check        | ON                     |
| innodb_file_format_max          | Antelope               |

| innodb_file_per_table   | OFF | #该项表示innodb引擎是否每个表都开启独立空间

| innodb_flush_log_at_trx_commit  | 1                      |

| innodb_flush_method             |                 

[root@lamp mysql]# vim /etc/my.cnf  #编辑mysql配置文件,开启innodb引擎对于每个表的独立空间

mysqlimport 命令安装_mysql_04

[root@lamp mysql]# service mysqld restart  #重启mysql服务

Shutting down MySQL.                              [  OK  ]

Starting MySQL..                                 [  OK  ]


[root@lamp mysql]# mysql

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

Your MySQL connection id is 1

Server version: 5.5.28-log Source distribution


Copyright (c) 2000, 2012, Oracle and/or its affiliates. All rights reserved.


Oracle is a registered trademark of Oracle Corporation and/or its

affiliates. Other names may be trademarks of their respective

owners.


Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.


mysql> SHOW VARIABLES LIKE '%innodb%';
+---------------------------------+------------------------+
| Variable_name                   | Value                  |
+---------------------------------+------------------------+
| have_innodb                     | YES                    |
| ignore_builtin_innodb           | OFF                    |
| innodb_adaptive_flushing        | ON                     |
| innodb_adaptive_hash_index      | ON                     |
| innodb_additional_mem_pool_size | 8388608                |
| innodb_autoextend_increment     | 8                      |
| innodb_autoinc_lock_mode        | 1                      |
| innodb_buffer_pool_instances    | 1                      |
| innodb_buffer_pool_size         | 134217728              |
| innodb_change_buffering         | all                    |
| innodb_checksums                | ON                     |
| innodb_commit_concurrency       | 0                      |
| innodb_concurrency_tickets      | 500                    |
| innodb_data_file_path           | ibdata1:10M:autoextend |
| innodb_data_home_dir            |                        |
| innodb_doublewrite              | ON                     |
| innodb_fast_shutdown            | 1                      |
| innodb_file_format              | Antelope               |
| innodb_file_format_check        | ON                     |
| innodb_file_format_max          | Antelope               |
| innodb_file_per_table   | ON |  #已经为innodb引擎设置了每表都单独为一个空间
| innodb_flush_log_at_trx_commit  | 1                      |
| innodb_flush_method       |                |

mysql> CREATE DATABASE mydb;  #创建新的数据库

Query OK, 1 row affected (0.00 sec)


mysql> USE mydb; #设定mydb为默认数据库
Database changed
mysql> CREATE TABLE testdb(id INT NOT NULL,name CHAR(30)); #建立testdb表2行
Query OK, 0 rows affected (0.03 sec)
mysql>
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mydb               |
| mysql              |
| performance_schema |
| test               |
+--------------------+
5 rows in set (0.00 sec)

mysql> SHOW TABLES FROM mydb;  #mydb数据库中包含的表 
+----------------+
| Tables_in_mydb |
+----------------+
| testdb         |
+----------------+
1 row in set (0.00 sec)


[root@lamp ~]# cd /mydata/data/mydb

[root@lamp mydb]#

total 112K

-rw-rw----. 1 mysql mysql   61 Apr 18 15:25 db.opt

-rw-rw----. 1 mysql mysql 8.4K Apr 18 15:27 testdb.frm   #test表的结构文件存放

-rw-rw----. 1 mysql mysql  96K Apr 18 15:27 testdb.ibd  #test表的数据和索引文件都保存在这个文件中

[root@lamp ~]# vim test.sql

CREATE DATABASE testdb;      #创建一个testdb数据库

CREATE TABLE testdb.tb1(id INT,name CHAR(20)); #在testdb库中建立tb1表。


mysql> \. /root/test.sql  #把test.sql中的内容导入到mysql内执行,

                  或者直接执行mysql < /root/test.sql 输入重定向一样。

Query OK, 1 row affected (0.00 sec)


Query OK, 0 rows affected (0.02 sec)


mysql> SHOW DATABASES;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| mydb               |
| mysql              |
| performance_schema |
| test               |
| testdb             |
+--------------------+
6 rows in set (0.00 sec)

mysql>
Database changed
mysql>
+------------------+
| Tables_in_testdb |
+------------------+
| tb1              |
+------------------+
1 row in set (0.00 sec)
mysql> DROP DATABASE testdb;  #删除testdb库
Query OK, 1 row affected (0.01 sec)




mysql5.5.28.tar.gz下载地址:http://down.51cto.com/data/700556

cmake-2.8.8.tar.gz下载地址:http://vdisk.weibo.com/s/usonnBN1894A3


转载于:https://blog.51cto.com/woyaoxuelinux/1917586