MySQL安装以及简单命令用法

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
简介:

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

  在/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

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

     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表所有内容都存在了,可以查看一下:

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,如需转载请自行联系原作者

相关实践学习
如何快速连接云数据库RDS MySQL
本场景介绍如何通过阿里云数据管理服务DMS快速连接云数据库RDS MySQL,然后进行数据表的CRUD操作。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
2月前
|
安全 关系型数据库 MySQL
mysql8安装
本文介绍了在 CentOS 7 上安装 MySQL 5.7 的详细步骤,包括下载、环境准备、系统配置、安装过程及启动方法。首先通过wget下载MySQL压缩包并解压至指定目录,接着进行主机名修改、依赖安装、用户与用户组创建、ulimit配置等环境准备工作。随后,对操作系统环境进行调整,如文件句柄和进程数的设置、内核参数优化、SELinux和防火墙的关闭等。最后,完成MySQL的安装配置,创建数据和日志目录,初始化MySQL,并设置启动脚本和环境变量,确保MySQL能够正常运行。
81 4
|
3天前
|
关系型数据库 MySQL 数据库
【MySQL基础篇】MySQL概述、Windows下载MySQL8.0超详细图文安装教程
在这一章节,主要介绍两个部分,数据库相关概念及MySQL数据库的介绍、下载、安装、启动及连接。接着,详细描述了MySQL 8.0的版本选择与下载,推荐使用社区版(免费)。安装过程包括自定义安装路径、配置环境变量、启动和停止服务、以及客户端连接测试。此外,还提供了在同一台电脑上安装多个MySQL版本的方法及卸载步骤。最后,解释了关系型数据库(RDBMS)的特点,即基于二维表存储数据,使用SQL语言进行操作,格式统一且便于维护。通过具体的结构图展示了MySQL的数据模型,说明了数据库服务器、数据库、表和记录之间的层次关系。
【MySQL基础篇】MySQL概述、Windows下载MySQL8.0超详细图文安装教程
|
9天前
|
关系型数据库 MySQL 数据库
docker高级篇(大厂进阶):安装mysql主从复制
docker高级篇(大厂进阶):安装mysql主从复制
70 24
|
4天前
|
NoSQL 关系型数据库 MySQL
Linux安装jdk、mysql、redis
Linux安装jdk、mysql、redis
69 7
|
2月前
|
安全 关系型数据库 MySQL
Linux下安装mysql8.0(以tar.xz包安装--编译安装)
通过上述步骤,您完成了从下载、编译、安装到配置MySQL 8.0的全过程。此过程虽然较为复杂,但提供了对MySQL安装环境的完全控制,有助于满足特定的部署需求。在实际操作中,根据具体的系统环境,可能还需调整部分步骤或解决未预见的依赖问题。始终参考官方文档和社区资源,保持安装过程与最新版本的兼容性。
1142 67
|
23天前
|
数据采集 关系型数据库 MySQL
MySQL常用函数:IF、SUM等用法
本文介绍了MySQL中常用的IF、SUM等函数及其用法,通过具体示例展示了如何利用这些函数进行条件判断、数值计算以及复杂查询。同时,文章还提到了CASE WHEN语句和其他常用函数,如COUNT、AVG、MAX/MIN等,强调了它们在数据统计分析、数据清洗和报表生成中的重要性。
|
24天前
|
SQL 存储 关系型数据库
MySQL进阶突击系列(01)一条简单SQL搞懂MySQL架构原理 | 含实用命令参数集
本文从MySQL的架构原理出发,详细介绍其SQL查询的全过程,涵盖客户端发起SQL查询、服务端SQL接口、解析器、优化器、存储引擎及日志数据等内容。同时提供了MySQL常用的管理命令参数集,帮助读者深入了解MySQL的技术细节和优化方法。
|
1月前
|
SQL 关系型数据库 MySQL
go语言数据库中mysql驱动安装
【11月更文挑战第2天】
63 4
|
2月前
|
关系型数据库 MySQL Linux
Docker安装Mysql5.7,解决无法访问DockerHub问题
当 Docker Hub 无法访问时,可以通过配置国内镜像加速来解决应用安装失败和镜像拉取超时的问题。本文介绍了如何在 CentOS 上一键配置国内镜像加速,并成功拉取 MySQL 5.7 镜像。
637 2
Docker安装Mysql5.7,解决无法访问DockerHub问题
|
1月前
|
关系型数据库 MySQL Linux
在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,并与使用 RPM 包安装进行了对比
本文介绍了在 CentOS 7 中通过编译源码方式安装 MySQL 数据库的详细步骤,并与使用 RPM 包安装进行了对比。通过具体案例,读者可以了解如何准备环境、下载源码、编译安装、配置服务及登录 MySQL。编译源码安装虽然复杂,但提供了更高的定制性和灵活性,适用于需要高度定制的场景。
120 3