MySQL安装以及简单命令用法

  1. 云栖社区>
  2. 博客>
  3. 正文

MySQL安装以及简单命令用法

技术小阿哥 2017-11-27 16:15:00 浏览798
展开阅读全文

MYSQL:关系型数据库

    存储引擎: 负责将逻辑层的概念转化为物理层机制,在物理层完成物理机制。

    支持事务:transaction

         必须满足的条件:ACID一致性持久性原子性隔离性

    锁:并发访问

   随机访问:数据在磁盘上是随机存储的

安装:

   OS Vendor使用操作系统安装:

        以CentOS为例: mysql,

                       mysql-server

                       mysql-devel:编译安装时需要

       MySQL官方提供的安装:官方网站:www.mysql.com

    源码编译安装

    通用二进制格式程序包安装

    rpm安装

    还可以通过镜像下载:http://mirrors.sohu.com/

MySQL的配置文件:my.cnf,集中式多段配置文件

MySQL服务器程序:mysqld

    客户端程序:mysql, mysqldump, mysqladmin

   建议在生产环境中将mysql安装在逻辑卷上,这样方便以后的管理,空间不够的话可以增大空间。

datadir: /var/lib/mysql/

datadir: /usr/local/mysql/data/

mysqld: mysql,mysql

mysql用户的身份操作,属主和属组都为mysql,并且对所操作的目录有读和写的权限。


安装操作

1创建逻辑卷并挂载

  创建磁盘分区

      #fdisk /dev/sda

  创建物理分区  

      #pvcreate /dev/sda{3,5}

  创建卷组为myvg

      #vgcreate myvg /dev/sda{3,5}

  创建逻辑卷mydata

       #lvcreate -L 20G -n mydata myvg

  对其进行格式化

      #mke2fs -t ext4 -L MYDATA -b 2048 /dev/myvg/mydata

  进行挂载

      #mkdir /mydata

      #mount -a

要使得能够开机自动挂载,需要编辑配置文件/etc/fstab

104740568.png

  在/mydata下创建data目录

      #mkdir /mydata/data

2:解压安装

  添加系统用户mysql

      #useradd -r mysql

  修改属主和属组

      #chown -R mysql:mysql /mydata/data

 下载的文件解压到/usr/local/

      #tar xf mysql-5.5.33-linux2.6-x86_64.tar.gz -C /usr/local

在这里,我们还有查看是否安装启动别的mysql版本的服务器,如果有,那么我们需要将其关闭

      #ss -tanl其中3306端口需要是关闭状态

  在/usr/local/下  

      #ln -sv mysql-5.5.33-linux2.6-x86_64 mysql

      #chown -R root:mysql /usr/local/mysql/*

      #cd mysql/support-files有样例,我们可以根据自己的需要选择

  将选择的文件复制一份到/etc/目录下并修改文件名为my.cnf

      #cp my-large.cnf /etc/my.cnf

3:修改配置文件

      # vim /etc/my.cnf

  找到相关设置进行修改操作

110426436.png

     thread_concurrency = 4并发核心数, 如果物理核心为2,这里就可以填写4

     在下面添加datadir = /mydata/data

  添加  

   innodb_file_per_table = 1  每表一个表空间

  服务脚本

     #cp mysql.server /etc/rc.d/init.d/mysqld

  添加mysql服务

     #chkconfig --add mysqld

  启动mysql

     #service mysqld start

这时候显示启动失败了,分析出来我们要先初始化,因而我们安装mysql时要注意,第一次安装启动时要进行初始化,对所出现的问题我们进行处理

  先将/mydata/data/下的所有文件删除掉

     #rm -rf /mydata/data/*

  进行初始化

     #cd /usr/local/mysql/

     #scripts/mysql_install_db --user=mysql --datadir=/mydata/data/初始化成功

  启动服务

     #service mysqld start

  这时候还不能连接客户端

# vim /etc/profile.d/mysql.sh

export PATH=/usr/local/mysql/bin:$PATH

   执行脚本

     # . /etc/profile.d/mysql.sh

     #mysql就可以进入了

4:因为我们的安装不在标准路径下,所以还要导出相关文件

  导出帮助文件

     #vim /etc/man.config

MANPATH /usr/local/mysql/man

  导出头文件

     #ln -sv /usr/local/mysql/include /usr/local/mysql

  导出库文件

     #vim /etc/ld.so.conf.d/mysql.conf

/usr/local/mysql/lib

至此我们的mysql配置完成。


     mysql> show [global|session] variables; 显示服务器参数变量

  有些变量的值可以修改,能够改变mysql的工作特性

  有些可以动态调整,即刻生效;

  另外一些只能修改配置文件后,重启生效;

     mysql> show [global|session] status;  显示服务器状态变量,记录了当前包括过去的时间内mysql的运行统计数据

  MySQL用户名:USERNAME@HOST

mysql客户端执行命令:

  客户端命令:不需语句结束符

      mysql> help

  服务器端命令:特指SQL语句必须有语句结束符,默认为分号;

      mysql> help COMMAND

用户管理:

  创建用户:

           CREATE USER username@host [IDENTIFIED BY 'password'];

  用户或主机可以使用通配符:

      %:匹配任意长度的任意字符;

      _: 匹配任意单个字符;

  例如:CREATE USER wpuser@172.16.%.%IDENTIFIED BY 'wppass'

        允许172.16.网段的主机连接 创建wpuser用户  密码为wppass

用户授权:GRANT ALL PRIVILEGES ON dbname.tablename TO username@host [IDENTIFIED BY 'password'];

        dbname.tablename  dbname表示库名

                          tablename表示表名

修改用户密码:

 1mysql> SET PASSWORD FOR username@host=PASSWORD('password');

 2# mysqladmin -uusername password 'password' -p

             -p 后面跟以前的密码

删除用户:DROP USER username@host;

授权

   GRANT ALL ON *.* TO 'root'@'172.16.%.%' IDENTIFIED BY 'mypass';有特殊符号需要用引号引起来

mysql>SELECT VERSION();    显示版本号

mysql>SHOW DATABASES;      显示数据库

mysql>SELECT user,host,password FROM user; 从user表查询user,host,password 相关信息

mysql>FLUSH PRIVILEGES;   重读授权表

加密码:

    mysql>SET PASSWORD FOR root@host=PASSWORD('password');

创建表:

    mysql>CREATE TABLE tb_name (col1 defination, col2 defination, ..., key defination);

删除表:

    mysql>DROP TABLE tb_name;


    INSERT INTO  :插入内容

    SELECT 字段 FROM 表 WHERE ;

字段:

    col1, col2

    *

    col1 AS NEWNAME, col2,

    比较运算:>, <, >=, <=, =, !=

    NULL: IS NULL, IS NOT NULL

LIKE :

    %: 任意长度的任意字符

    _:任意单个字符

IN LIST

    RLIKE: 正则表达式书写模式

    UPDATE 表名 SET 字段名=值 WHERE;

    DELETE FROM 表名 WHERE ;

mysql>

   quit, \q      退出

   delimiter, \d  变换语句结束符,定义使用的结束符    

   go, \g       不知道结束符而把语句送到服务器端去执行

   use, \u      设定默认数据库

   ego, \G     不知道结束符而把语句送到服务器端去执行,并且将每一行的结果纵向显示

   system, \!    不退出当前mysql客户端程序而执行系统命令  

   status, \s     显示当前mysql服务器的状态信息

mysql:执行方式有两种

交互式方式:

   -h, --host=     指定要连接的远程主机

   -u, --user=     指定用户名

   -p, --password=   密码

   -D db_name, --database=  可以直接将某个指定的数据库设定为数据库

   -e 'SQL_Statement;' 不会连接到主机,而是将命令送到对方主机后直接将结果取回来

批处理模式:(使用sql脚本)

    mysql OPTIONS < script.sql

    mysql> source /path/to/script.sql

#vim test.sql

create database wpdb;

Create user wpuser@172.16.%.% identified by wppass;

Create user wpuser@localhost identified by wppass;

Grant all wpdb.* wpuser@172.16.%.%;

Grant all wpdb.* wpuser@localhost;

   #mysql -uroot -pmypass < test.sql

   mysqld, mysql: /etc/my.cnf配置文件

          /etc/my.cnf, /etc/mysql/my.cnf, $MYSQL_BASE/my.cnf, ~/.my.cnf

#vim .my.cnf

[client]

user=root

host=localhost

password=mypass

     #chmod 600 .my.cnf 修改权限对当前用户有效

 这样本机用户就不用每次都指定用户名、主机名、密码了,而其他用户不会有权限,

 显示所支持的所有字符集:

    mysql> SHOW CHARACTER SET;

 显示所有字符集的排序规则:

    mysql> SHOW COLLATION;


关系型数据库:

  Constraint:

  主键:primary key

      不能为空,惟一;

  惟一键:uniq key

      可以为空,惟一;

  外键:foreign key

      引用性约束

  检查性约束:

       0<age<150



MySQL基础操作练习(所属的库叫做testdb)

新建如下表(包括结构和内容):

ID    Name          Age     Gender     Course

1     Ling Huchong   24      Male       Huashan

2     Huang Rong    19      Female     Emen

3     Lu Wushaung   18      Female     Hengshan

4     Zhu Ziliu     52      Male       Kongdong

5     Chen Jialuo   22      Male      Shaolin

创建库:

  mysql>create database testdb

启用testdb库

  mysql>use testdb

创建表tb1

  mysql>CREATE TABLE tb1 (ID TINYINT UNSIGNED NOT NULL PRIMARY KEY AUTO_INCREMENT, Name CHAR(30) NOT NULL UNIQUE KEY, Age TINYINT UNSIGNED, Gender CHAR(1) DEFAULT 'M', Course VARCHAR(50) NOT NULL);

查看数据库

   mysql> show databases;

DESCRIPTION tb1 查看有几个字节

插入内容

   mysql> insert into tb1 values (1,'Ling Huchong',24,'Male','Huashan');

   mysql> insert into tb1 values (2,'Huang Rong',19,'Female','Emen');

   mysql> insert into tb1 values (3,'Lu Wushaung',18,'Female','Hengshan');

   mysql> insert into tb1 values (4,'Zhu Ziliu',52,'Male','Kongdong');

   mysql> insert into tb1 values (5,'Chen Jialuo',22,'Male','Shaolin');

   至此tb1表所有内容都存在了,可以查看一下:

135521557.png

2、完成如下操作

(1)找出性别为女性的所有人;

   mysql> SELECT name FROM tb1 WHERE Gender='Female';

(2)找出年龄大于20的所有人;

mysql> SELECT name FROM tb1 WHERE Age>20;

(3)修改Zhu ZiliuCourseWudang;

   mysql> UPDATE tb1 SET Course='Wudang' WHERE name='Zhu Ziliu';

(4)删除年龄小于等于19岁的所有人;

   mysql> DELETE FROM tb1 WHERE Age<=19;

(5)创建此表及所属的库;

(6)授权给testusertestdb库有所有访问权限;

   mysql> GRANT ALL ON testdb.* TO 'testuser'@'%';

 mysql>DROP TABLE tb1;删除表tb1




本文转自 宋鹏超 51CTO博客,原文链接:http://blog.51cto.com/qidian510/1282064,如需转载请自行联系原作者

网友评论

登录后评论
0/500
评论
技术小阿哥
+ 关注