MySQL安装以及简单命令用法

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
云数据库 RDS MySQL Serverless,价值2615元额度,1个月
简介:

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

相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
8天前
|
SQL 存储 关系型数据库
MySQL Cluster集群安装及使用
MySQL Cluster集群安装及使用
|
8天前
|
监控 关系型数据库 MySQL
Linux MySQL相关启动命令
【4月更文挑战第22天】
|
12天前
|
关系型数据库 MySQL 数据库
《MySQL 简易速速上手小册》第1章:MySQL 基础和安装(2024 最新版)
《MySQL 简易速速上手小册》第1章:MySQL 基础和安装(2024 最新版)
36 4
|
1天前
|
关系型数据库 MySQL 测试技术
sysbench 对MySQL压测100分钟的命令
使用 `sysbench` 对 MySQL 数据库进行性能测试(压测)时,首先确保 `sysbench` 和 MySQL 数据库已经安装,并且你有一个测试数据库可以使用。下面是一个针对 MySQL 数据库进行压测的示例命令,测试时长为 100 分钟(6000 秒)。 在运行此命令之前,请确保以下内容: - 使用适当的数据库连接参数(主机、端口、用户名、密码、数据库名)。 - 根据你的需求调整测试参数(如并发数、线程数、事务数等)。 以下是一个示例命令,使用 `sysbench` 对 MySQL 数据库进行压测 100 分钟: ```shell sysbench --db-driver=m
|
1天前
|
关系型数据库 MySQL 应用服务中间件
centos7在线安装jdk1.8+tomcat+mysql8+nginx+docker
现在,你已经成功在CentOS 7上安装了JDK 1.8、Tomcat、MySQL 8、Nginx和Docker。你可以根据需要配置和使用这些服务。请注意,安装和配置这些服务的详细设置取决于你的具体需求。
17 2
|
2天前
|
SQL 关系型数据库 MySQL
【mysql】mysql命令使用大全,你想要的都在这里
【mysql】mysql命令使用大全,你想要的都在这里
|
2天前
|
存储 关系型数据库 MySQL
linux安装MySQL8.0,密码修改权限配置等常规操作详解
linux安装MySQL8.0,密码修改权限配置等常规操作详解
|
5天前
|
监控 关系型数据库 MySQL
|
6天前
|
关系型数据库 MySQL 数据安全/隐私保护
安装mysql和远程连接
安装mysql和远程连接
28 0
|
6天前
|
关系型数据库 MySQL Java
Linux 安装 JDK、MySQL、Tomcat(图文并茂)
Linux 安装 JDK、MySQL、Tomcat(图文并茂)
28 2