MySQL数据库快速部署实践及SQL问题诊断与调优

社区MySQL
1. MySQL安装与配置

MySQL是一个关系型数据库管理系统,被广泛应用于Web应用程序和企业级软件中。MySQL是一个开源软件,具有可靠性高、性能好、易于使用和管理等特点。MySQL的普及和广泛应用也是其重要性的体现。MySQL已经成为世界上最流行的关系型数据库管理系统之一,被广泛应用于Web应用程序、企业级软件和移动应用程序等领域。MySQL的普及和广泛应用,为软件开发者和企业提供了一个可靠和高效的数据管理和存储解决方案。本步骤指导您如何在服务器上安装MySQL。

以CentOS为例:

  1. 执行如下命令,更新YUM源。
rpm -Uvh  http://dev.mysql.com/get/mysql57-community-release-el7-9.noarch.rpm
  1. 执行如下命令,安装MySQL。
yum -y install mysql-community-server --nogpgcheck
  1. 执行如下命令,查看MySQL版本号。
mysql -V

返回结果如下,表示您已成功安装MySQL。

picture.image

  1. 执行如下命令,启动MySQL服务。
systemctl start mysqld
  1. 执行如下命令,设置MySQL服务开机自启动。
systemctl enable mysqld
  1. 配置MySQL的root用户密码。

1)执行如下命令,查看/var/log/mysqld.log文件,获取root用户的初始密码。

grep 'temporary password' /var/log/mysqld.log

返回结果如下所示,您可以查看到root用户的初始密码。

 

picture.image

2)执行以下命令,使用root用户登录数据库。

mysql -uroot -p

返回结果如下所示,输入root用户的初始密码。(输入的密码是不会显示出来的) 

picture.image 3)执行以下命令,修改MySQL的root用户的初始密码。

set global validate_password_policy=0;  #修改密码安全策略为低(只校验密码长度,至少8位)。
ALTER USER 'root'@'localhost' IDENTIFIED BY '12345678';

4)执行以下命令,授予root用户远程管理权限。

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '12345678';
  1. 输入exit退出数据库。

picture.image

  1. 执行以下命令,使用root用户登录数据库。
mysql -uroot -p12345678
  1. 执行如下命令,创建test数据库。
create database test;
  1. 执行如下命令,查看当前数据库列表。此时,可以看到三个数据库:information_schema ,mysql,performance_schema,sys,test 。
show databases;

注意:进入 mysql 之后,每条命令结尾都要有分号。

picture.image

  1. 执行命令 use mysql;,连接 mysql 数据库。然后执行命令 show tables; ,查看 mysql 数据库中的数据表。使用命令 exit ,退出 MySQL 界面。
use mysql;
show tables;
exit

 

picture.image

  1. 返回 Linux 界面,执行如下命令,将名为 test 的数据库备份到当前目录的 test.sql。界面显示 Enter password,输入 MySQL 数据库的登录密码 12345678 。根据备份的数据库大小,等待时间长短不同。完成后,使用命令 ll 查看备份文件,界面查看到备份文件 test.sql ,完成备份。
mysqldump -uroot -p test >test.sql
ll

  picture.image

  1. 返回 Linux 界面,执行如下命令,将 test.sql 导入数据库。界面显示 Enter password ,输入 MySQL 数据库的登录密码 12345678 。

说明:其中参数 -D 是指定数据库为test。

mysql -uroot -p -Dtest<test.sql

picture.image

  1. 还有一种导入方法:输入命令:mysql -uroot -p12345678 ,进入 MySQL 数据库。输入 use test; ,连接数据库 test ,输入 source /root/test.sql; ,将 test.sql 导入数据库 test ,全部出现 Query OK ,则表示数据库导入成功。
mysql -uroot -p12345678
use test;
source /root/test.sql;

  picture.image

 

 

2. 常用SQL

常用 SQL

本小节将主要介绍基本的 SQL 语句,数据的增删查改等。

  1. 若当前不是在 Mysql 数据库的命令界面,请执行命令:mysql -uroot -p12345678 ,登录到 Mysql 数据库命令行界面。否则,请忽略此操作。

 

picture.image

然后,在Mysql中,执行命令 use test; ,连接 test 数据库。界面提示 Database changed ,表示现在使用的数据库为 test 数据库。

use test;

  picture.image

 

  1. 执行命令 create table test1 (id int,name char(20)); ,创建一张表,表名为 test1 。test1 表有两列:id 和 name。其中,id 的数据类型为 int,name 的数据类型为 char,且字符长度为 20。

说明:mysql 命令执行完成,页面会提示 Query OK 。

create table test1 (id int,name char(20));

 

语法:CREATE TABLE 表名称 (列名称1 数据类型,列名称2 数据类型,列名称3 数据类型,....);

 

picture.image

  1. 执行命令 insert into test1 values(1,"zhangsan"); ,插入一条数据:此条数据的第一列 id 的值为1,第二列 name 的值为zhangsan。
insert into test1 values(1,"zhangsan");

 

语法:INSERT INTO 表名称 VALUES (值1, 值2,....);

 

picture.image

  1. 执行命令 select * from test1; ,查看 test1 表中的全部数据信息。此时,用户可以查看到新插入的一行数据: id 的值为 1 , name 的值为 zhangsan 。
select * from test1;

语法1:SELECT * FROM 表名称; //查询表中的所有列的数据信息

语法2:SELECT 列名称 FROM 表名称; //查询表中的指定列的数据信息

 

picture.image

  1. 执行命令 update test1 set name = "lisi" where id =1; ,更新 test1 表中的数据,也就是,将所有 id 为 1 的 name 值均修改为 lisi 。
update test1 set name = "lisi" where id =1;

 

select * from test1;

语法:UPDATE 表名称 SET 列名 = 值 WHERE 表名称 = 值;

  picture.image

  1. 执行命令 delete from test1 where id =1; ,删除 test1 表中,所有 id 值为 1 的数据。
delete from test1 where id =1;

 

select * from test1;

语法:DELETE FROM 表名称 WHERE 列名称 = 值;

picture.image

  1. 执行命令 drop table test1; 删除名为 test1 的数据表。
drop table test1;

 

show tables;

语法:DROP TABLE 表名称

picture.image

  1. 执行命令 drop database test; ,删除名为 test 的数据库。
drop database test;

 

show databases;

语法:DROP DATABASE 数据库名称

  picture.image

3.SQL问题诊断与调优

MySQL常见的表创建、索引创建等操作。

1、创建数据库表。

创建数据库test_tb。

CREATE TABLE IF NOT EXISTS test_tb(

  id INT UNSIGNED AUTO_INCREMENT,

  name VARCHAR(100) NOT NULL,

  address VARCHAR(40) NOT NULL,

  birthday DATE,

  PRIMARY KEY ( id )

)ENGINE=InnoDB DEFAULT CHARSET=utf8;

2、输入如下SQL语句,查看SQL执行计划。

explain select * from test_tb where name='abc';

返回如下如下结果,你可以发现key和key_len的值都是null。

picture.image

3、输入如下SQL语句,查看test_tb表的表结构。

show create table test_tb;

返回如下结果,您可以查看到test_tb表的表结构。

picture.image

4、创建test_tb表的索引。

alter table test_tb add index(name);

返回如下结果,表示test_tb表的索引创建成功。

picture.image

5、重复第5步和第6步的操作,再次查看完整的test_tb表的表结构,您会发现表结构中多了一个KEY name (name)

picture.image

6、在SQLConsole页签中,输入如下SQL语句,查看执行SQL计划,单击执行

explain select * from test_tb where name='abc';

返回如下如下结果,你会发现key和key_len的值发生了改变。

picture.image

7、输入如下SQL语句,查看数据库运行中的SQL。

select * from `information_schema`.`PROCESSLIST`

返回如下结果,您可以查看到数据库运行中的SQL。

picture.image

0
0
0
0
评论
未登录
看完啦,登录分享一下感受吧~
暂无评论