返回列表 发帖

Windows2012R2_安装MySQL5.5

安装MySQL:
图片1.png
2022-4-20 22:02


图片2.png
2022-4-20 22:02


图片3.png
2022-4-20 22:02


这里选择Custom:(自定义MySQL的安装路径)
图片4.png
2022-4-20 22:03


图片5.png
2022-4-20 22:03

注释:MySQL的安装路径中,不能含有中文;生产环境中,不要安装在C盘。

图片6.png
2022-4-20 22:03


图片7.png
2022-4-20 22:03


图片8.png
2022-4-20 22:04


图片9.png
2022-4-20 22:04


图片10.png
2022-4-20 22:04


图片11.png
2022-4-20 22:04



下面是选择MySQL的应用类型:
图片12.png
2022-4-20 22:05

注释:第一种是开发服务器,将占用尽量少的内存;第二种是Web/应用服务器,将占用中等数量内存;最后一种是这台服务器只跑MySQL数据库,将占用全部的可用内存。


下面是选择数据库的用途:
图片13.png
2022-4-20 22:05

注释:第一种是多功能用途,将把数据库优化成很好的InnoDB和高效率的MyISAM存储引擎;第二种是只用于事务处理类型,支持InnoDB、MyISAM;最后一种是非事务处理类型,只支持MyISAM;
一般选择第一种多功能用途。


图片14.png
2022-4-20 22:05



选择MySQL的最大连接数:
图片15.png
2022-4-20 22:06

注释:安装后,以MySQL的主配置文件为准。


选择MySQL的监听端口,默认是TCP 3306:
图片16.png
2022-4-20 22:06

注释:可以在这里打开操作系统的防火墙的TCP 3306端口。


选择数据库的默认字符集:
图片17.png
2022-4-20 22:06

注释:安装后,以MySQL的主配置文件为准。


图片18.png
2022-4-20 22:07



设置MySQL的数据库管理员root@localhost的密码,这个超级用户非常重要,拥有对数据库完全控制的权限:
图片19.png
2022-4-20 22:07



图片20.png
2022-4-20 22:07



点击“Finish”按键,完成安装:
图片21.png
2022-4-20 22:08




安装完成后,打开服务:
图片22.png
2022-4-20 22:08


图片23.png
2022-4-20 22:08


图片24.png
2022-4-20 22:08

注释:MySQL服务默认会随系统的启动而自动启动。



根据上面安装时的配置,已在操作系统的防火墙打开TCP 3306端口:
图片25.png
2022-4-20 22:09


图片26.png
2022-4-20 22:09






使用客户端命令行程序,登录MySQL:
图片27.png
2022-4-20 22:09


输入数据库管理员root@localhost的密码:
图片28.png
2022-4-20 22:10


图片29.png
2022-4-20 22:10




查看数据库里有哪些库:(以下4个库是默认就有的)
show databases;
图片30.png
2022-4-20 22:11



查看MySQL的最大连接数:
show variables like '%max_connections%';
图片31.png
2022-4-20 22:11




MySQL的主配置文件:
图片32.png
2022-4-20 22:11



MySQL的主配置文件的内容:(根据上面安装时的配置,自动生成的)

[client]
port=3306

[mysql]
default-character-set=utf8

[mysqld]
port=3306
basedir="D:/MySQL/"
datadir="C:/ProgramData/MySQL/MySQL Server 5.5/Data/"
character-set-server=utf8
default-storage-engine=INNODB
max_connections=800
query_cache_size=166M
table_cache=1520
tmp_table_size=59M
thread_cache_size=38

myisam_max_sort_file_size=100G
myisam_sort_buffer_size=59M
key_buffer_size=258M
read_buffer_size=64K
read_rnd_buffer_size=256K
sort_buffer_size=256K

innodb_additional_mem_pool_size=11M
innodb_flush_log_at_trx_commit=1
innodb_log_buffer_size=6M
innodb_buffer_pool_size=500M
innodb_log_file_size=100M
innodb_thread_concurrency=8



修改MySQL的最大连接数:
图片33.png
2022-4-20 22:12



重启MySQL服务:
图片34.png
2022-4-20 22:12



再次查看MySQL的最大连接数:
图片35.png
2022-4-20 22:13






使用CMD命令行程序:
图片36.png
2022-4-20 22:13



MySQL的命令都在安装目录下的bin里面:(截图有省略)
d:
cd MySQL\bin
dir

图片37.png
2022-4-20 22:14




######
在CMD命令行程序里输出MySQL的最大连接数:(Windows下需要先切换工作目录)
D:\MySQL\bin>mysql -u"root" -p"123" -e"show variables like '%max_connections%';"
+-----------------+-------+
| Variable_name   | Value |
+-----------------+-------+
| max_connections | 1500  |
+-----------------+-------+

D:\MySQL\bin>


D:\MySQL\bin>mysql -u"root" -p"123" -h"localhost" -e"show variables like '%max_connections%';"
+-----------------+-------+
| Variable_name   | Value |
+-----------------+-------+
| max_connections | 1500  |
+-----------------+-------+

D:\MySQL\bin>

注释:使用的是库管理员root@localhost


使用参数“-sN”:
D:\MySQL\bin>mysql -u"root" -p"123" -h"localhost" -sN -e"show variables like '%max_connections%';"
max_connections 1500

D:\MySQL\bin>



######
输出所有数据库用户及其主机信息:(以下是初始状态)
D:\MySQL\bin>mysql -u"root" -p"123" -e"select user,host from mysql.user;"
+------+-----------+
| user | host      |
+------+-----------+
| root | localhost |
+------+-----------+

D:\MySQL\bin>



######
查询数据库管理员root@localhost的权限,并把结果输出(追加)到文件:
D:\MySQL\bin>mysql -u"root" -p"123" -e"show grants for root@localhost;" >> d:\1.txt

D:\MySQL\bin>


在CMD命令行程序里输出文件的内容:
D:\MySQL\bin>type d:\1.txt
Grants for root@localhost
GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY PASSWORD '*23AE809DDACAF96AF0FD78ED04B6A265E05AA257' WITH GRANT OPTION
GRANT PROXY ON ''@'' TO 'root'@'localhost' WITH GRANT OPTION



######
新建一个库,指定其字符集:
D:\MySQL\bin>mysql -u"root" -p"123" -e"create database data1 character set utf8mb4 collate utf8mb4_unicode_ci;"

D:\MySQL\bin>


查询库data1的字符集,并把结果输出(覆盖)到文件:
D:\MySQL\bin>mysql -u"root" -p"123" -e"show create database data1;" > d:\2.txt

D:\MySQL\bin>


在CMD命令行程序里输出文件的内容:
D:\MySQL\bin>type d:\2.txt
Database        Create Database
data1        CREATE DATABASE `data1` /*!40100 DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci */

D:\MySQL\bin>

注释:库data1的字符集为 utf8mb4_unicode_ci 



######
创建一个数据库用户并授权:

MySQL服务器授权数据库用户zhuohua@'192.168.168.132'(密码1234),仅仅在使用IP地址192.168.168.132时可以进行访问,对库data1有完全控制的权限:

D:\MySQL\bin>mysql -u"root" -p"123" -e"grant all on data1.* to zhuohua@'192.168.168.132' identified by '1234';"

D:\MySQL\bin>


查询数据库用户zhuohua@'192.168.168.132'的权限,并把结果输出(覆盖)到文件:
D:\MySQL\bin>mysql -u"root" -p"123" -e"show grants for zhuohua@'192.168.168.132';" > d:\3.txt


在CMD命令行程序里输出文件的内容:
D:\MySQL\bin>type d:\3.txt
Grants for zhuohua@192.168.168.132
GRANT USAGE ON *.* TO 'zhuohua'@'192.168.168.132' IDENTIFIED BY PASSWORD '*A4B6157319038724E3560894F7F932C8886EBFCF'
GRANT ALL PRIVILEGES ON `data1`.* TO 'zhuohua'@'192.168.168.132'

D:\MySQL\bin>


再次输出所有数据库用户及其主机信息:
D:\MySQL\bin>mysql -u"root" -p"123" -e"select user,host from mysql.user;"
+---------+-----------------+
| user    | host            |
+---------+-----------------+
| zhuohua | 192.168.168.132 |
| root    | localhost       |
+---------+-----------------+

D:\MySQL\bin>





############
############

Windows客户端使用SQLyog,远程访问MySQL数据库:

运行 SQLyogEnt.exe ,新建一个连接:
图片39.png
2022-4-20 22:22

注释:
MySQL服务器的IP地址 192.168.168.133
数据库用户名 zhuohua
密码 1234
端口 3306

笺注:
Windows客户端的IP地址为 192.168.168.132
使用数据库用户zhuohua@'192.168.168.132'


SQLyog的主界面:
图片40.png
2022-4-20 22:23

注释:数据库用户 zhuohua@'192.168.168.132' 可以登录MySQL,只对库data1有完全控制的权限。


使用SQLyog的查询编辑器,查看MySQL的最大连接数:
图片41.png
2022-4-20 22:23

代码:
show variables like '%max_connections%';


使用SQLyog的查询编辑器创建一个表:
图片42.png
2022-4-20 22:24

代码:
Use data1;

create table t_1(
   id int not null auto_increment,
   name varchar(20) not null,
   sex varchar(2),
   age tinyint,
   grade varchar(5),address varchar(50),
   chinese float,math float,
   primary key (id)
);



使用查询编辑器往表data1.t_1中一次性插入多条记录:(字段id为主键、标识符列,会自动增长,不用写)
Use data1;

INSERT INTO t_1 (name,sex,age,grade,address,chinese,math) VALUES ('张三','男',13,'三年一班','广州市',108,77);

INSERT INTO t_1 (name,sex,age,grade,address,chinese,math) VALUES ('李小芳','女',14,'三年二班','佛山市',-60,48.5);

INSERT INTO t_1 (name,sex,age,grade,address,chinese,math) VALUES ('张大白','男',13,'三年一班','广州市',120,99.5);



在查询编辑器里输出表data1.t_1中的所有记录:
SELECT * FROM data1.t_1;
图片43.png
2022-4-20 22:24




############
############

在库data1中创建表t_2:
Use data1;
create table t_2(
   id int not null auto_increment,
   name varchar(20) not null,
   phone varchar(30),
   english float,
   primary key (id)
);


使用查询编辑器往表data1.t_2中一次性插入多条记录:(字段id为主键、标识符列,会自动增长,不用写)
Use data1;
INSERT INTO t_2 (name,phone,english) VALUES ('张三','11234',60);
INSERT INTO t_2 (name,phone,english) VALUES ('张大白','22234',70.5);


在查询编辑器里输出表data1.t_2中的所有记录:
Use data1;
SELECT * FROM t_2;
图片44.png
2022-4-20 22:25




############
############

多表交叉查询:(有直接相通的字段时)
Use data1;
select t_1.name,t_1.grade, t_1.chinese,t_2.english from t_1,t_2 where t_1.name = t_2.name;
图片45.png
2022-4-20 22:26



Use data1;
select t_1.name,t_1.grade, t_1.chinese,t_2.english from t_1,t_2 where t_1.name = t_2.name and t_1.name = '张大白';
图片46.png
2022-4-20 22:26



Use data1;
select t_1.name,t_1.grade, t_1.chinese,t_2.english from t_1,t_2 where t_1.name = t_2.name and t_1.chinese = 108;
图片47.png
2022-4-20 22:26



Use data1;
select t_1.name,t_1.grade, t_1.chinese,t_2.english from t_1,t_2 where t_1.name = t_2.name and t_2.english = 70.5;
图片48.png
2022-4-20 22:27




############
############

将表data1.t_1、data1.t_2的一些字段、记录放到一个新表中:

先复制表结构:
Use data1;
CREATE TABLE new_t_1 SELECT t_1.name,t_1.grade, t_1.chinese,t_2.english FROM t_1,t_2 WHERE 1=2;


再复制表数据:
INSERT INTO new_t_1 (name,grade,chinese,english) SELECT t_1.name,t_1.grade, t_1.chinese,t_2.english FROM t_1,t_2 where t_1.name = t_2.name and t_1.name = '张大白';


上面的代码执行成功后,再查看新表data1.new_t_1的表数据:
Use data1;
SELECT * FROM new_t_1;
图片49.png
2022-4-20 22:27














##################
##################

在库data1中再创建表table1、table2、table3:
Use data1;

create table table1(
   id int not null auto_increment,
   number varchar(50) not null,
   name varchar(50),
   address varchar(50),
   primary key (id)
);

create table table2(
   id int not null auto_increment,
   number varchar(50) not null,
   name varchar(50),
   class varchar(20),
   primary key (id)
);

create table table3(
   id int not null auto_increment,
   class varchar(20),
   teacher varchar(20),
   primary key (id)
);



插入记录:(字段id为主键、标识符列,会自动增长,不用写)
Use data1;

insert into table1 (number,name,address) values ('A001','小明','佛山');

insert into table1 (number,name,address) values ('A002','小李','广州');

insert into table1 (number,name,address) values ('A003','小海','肇庆');


insert into table2 (number,name,class) values ('A001','小明','跆拳道');

insert into table2 (number,name,class) values ('A002','小李','空手道');

insert into table2 (number,name,class) values ('A003','小海','跆拳道');


insert into table3 (class,teacher) values ('跆拳道','李大杰');

insert into table3 (class,teacher) values ('空手道','小龙');



在查询编辑器里一次性输出表data1.table1、data1.table2、data1.table3中的所有记录:
USE data1;

SELECT * FROM table1;
SELECT * FROM table2;
SELECT * FROM table3;

图片50.png
2022-4-20 22:29


图片51.png
2022-4-20 22:29


图片52.png
2022-4-20 22:29




############
############

多表交叉查询:(没有直接相通的字段时)

查询选择了课程“空手道”的学生信息,并显示对应的课程老师:
Use data1;
select table1.number,table1.name, table1.address,table2.class,table3.teacher from table1,table2,table3 where table1.number = table2.number and table2.class = table3.class and table3.class = '空手道';
图片53.png
2022-4-20 22:30

笺注:要有间接相通的字段,才能进行查询。



查询选择了课程“跆拳道”的学生信息,并显示对应的课程老师:
Use data1;
select table1.number,table1.name, table1.address,table2.class,table3.teacher from table1,table2,table3 where table1.number = table2.number and table2.class = table3.class and table3.class = '跆拳道';
图片54.png
2022-4-20 22:31




############
############

将表data1.table1、data1.table2、data1.table3的一些字段、记录放到一个新表中:

先复制表结构:
Use data1;
CREATE TABLE new_t_2 SELECT table1.number,table1.name, table1.address,table2.class,table3.teacher FROM table1,table2,table3 WHERE 1=2;


再复制表数据:
INSERT INTO new_t_2 (number,name,address,class,teacher) SELECT table1.number,table1.name, table1.address,table2.class,table3.teacher from table1,table2,table3 where table1.number = table2.number and table2.class = table3.class and table3.class = '跆拳道';


上面的代码执行成功后,再查看新表data1.new_t_2的表数据:
Use data1;
SELECT * FROM new_t_2;
图片55.png
2022-4-20 22:31















############
############

再创建一个数据库用户并授权:

MySQL服务器授权数据库用户zhuohua@'192.168.168.154'(密码886),仅仅在使用IP地址192.168.168.154时可以进行访问,对库data1有完全控制的权限:
D:\MySQL\bin>mysql -u"root" -p"123" -e"grant all on data1.* to zhuohua@'192.168.168.154' identified by '886';"

D:\MySQL\bin>


查看数据库用户zhuohua@'192.168.168.154'的权限:
D:\MySQL\bin>mysql -u"root" -p"123" -e"show grants for zhuohua@'192.168.168.154';"
+-------------------------------------------------------------------------------
---------------------------------------+
| Grants for zhuohua@192.168.168.154
                                       |
+-------------------------------------------------------------------------------
---------------------------------------+
| GRANT USAGE ON *.* TO 'zhuohua'@'192.168.168.154' IDENTIFIED BY PASSWORD '*F961C54AFEB4D281CE53D7CB8E7822890D86FFFC' |
| GRANT ALL PRIVILEGES ON `data1`.* TO 'zhuohua'@'192.168.168.154'
                                       |
+-------------------------------------------------------------------------------
---------------------------------------+

D:\MySQL\bin>


再次输出所有数据库用户及其主机信息:
D:\MySQL\bin>mysql -u"root" -p"123" -e"select user,host from mysql.user;"
+---------+-----------------+
| user    | host            |
+---------+-----------------+
| zhuohua | 192.168.168.132 |
| zhuohua | 192.168.168.154 |
| root    | localhost       |
+---------+-----------------+

D:\MySQL\bin>

注释:zhuohua@'192.168.168.132'、zhuohua@'192.168.168.154'是两个不同的数据库用户。



############

Linux客户端远程登录MySQL数据库:
[root@centos8 ~]# mysql -u"zhuohua" -p"886" -h"192.168.168.133"
图片56.png
2022-4-20 22:33

注释:
MySQL服务器的IP地址 192.168.168.133
数据库用户名 zhuohua
密码 886
端口 3306

笺注:
Linux客户端需要安装MySQL或MariaDB
Linux客户端的IP地址为 192.168.168.154
使用数据库用户zhuohua@'192.168.168.154'



在Linux客户端查看数据库里有哪些库:
MySQL [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| data1              |
+--------------------+
2 rows in set (0.002 sec)

MySQL [(none)]>

注释:数据库用户 zhuohua@'192.168.168.154' 可以登录MySQL,只对库data1有完全控制的权限。



######
在Linux客户端查看MySQL的最大连接数:
[root@centos8 ~]# mysql -u"zhuohua" -p"886" -h"192.168.168.133" -e"show variables like '%max_connections%';"
+-----------------+-------+
| Variable_name   | Value |
+-----------------+-------+
| max_connections | 1500  |
+-----------------+-------+
[root@centos8 ~]#


使用参数“-sN”:
[root@centos8 ~]# mysql -u"zhuohua" -p"886" -h"192.168.168.133" -sN -e"show variables like '%max_connections%';"
max_connections 1500
[root@centos8 ~]#


[root@centos8 ~]# mysql -u"zhuohua" -p"886" -h"192.168.168.133" -sN -e"show variables like '%max_connections%';" |awk '{print $2}'
1500
[root@centos8 ~]#



######
在Linux客户端查看表data1.new_t_1的表数据:
[root@centos8 ~]# mysql -u"zhuohua" -p"886" -h"192.168.168.133" -e"SELECT * FROM data1.new_t_1;"
+-----------+--------------+---------+---------+
| name      | grade        | chinese | english |
+-----------+--------------+---------+---------+
| 张大白    | 三年一班     |     120 |    70.5 |
+-----------+--------------+---------+---------+
[root@centos8 ~]#



######
在Linux客户端查看表data1.new_t_2的表数据:
[root@centos8 ~]# mysql -u"zhuohua" -p"886" -h"192.168.168.133" -e"Use data1;SELECT * FROM new_t_2;"
+--------+--------+---------+-----------+-----------+
| number | name   | address | class     | teacher   |
+--------+--------+---------+-----------+-----------+
| A001   | 小明   | 佛山    | 跆拳道    | 李大杰    |
| A003   | 小海   | 肇庆    | 跆拳道    | 李大杰    |
+--------+--------+---------+-----------+-----------+
[root@centos8 ~]#





相关文章:
Windows2008R2_安装MySQL5.5
Windows下MySQL的备份和还原

Python3脚本管理Windows下的MySQL
CentOS8_在Docker中安装MySQL

MySQL的SQL语句

使用SQLyog远程管理MySQL
Windows2012R2_IIS+PHP Manger+Zend Guard Loader/OPcache

MSSQL的SQL语句(多表交叉查询)

返回列表