简介

1·数据库的重要性 2·MySQL 介绍 3·MySQL 安装及注意事项 4·MySQL 数据库的使用 5·Windows 安装MySQL 6·Windows 的 cmd 远程连接 Linux MySQL


·数据库的重要性

1·在很古代的时候就有数据库的诞生,但是它的名字不叫数据库而已。比如说古时候的钱庄,它的账本,就是相当于一个数据库。上面记录着客户的存储信息,非常的重要。如果这账本丢失了,那么就会面临巨大的损失。 2·追溯到现代,就更多了,比如银行,派出所的居民身份信息等,这些都离不开数据库。 3·数据库它可以让杂乱无章的的一些数据、信息保持统一、完整的形式保存,这样使用起来方便很多。让用户很快的能找到自己想要的信息。 4·数据库还可以应用共享,比如:我们购买房子的时候,留下自己的信息,那么机会有装修公司、家具公司等等联系你。这就是说的好听就是共享信息。还有一种说法就是泄露个人隐私,但是这种利大于弊!促进GDP增长。


MySQL 介绍

现今主流的关系数据库有如下几种: 1·SQL server :它是 Microsoft 公司的产品 ,主要用于 windows 上。 2·Oracle :Oracle公式成立于1977年,最开始就是做数据库的,老牌公司。这个数据库现今能适应 70多种操作系统,在全世界都是领先的地位。 3·DB2 : 它属于 IBM 公司,也可以运行在多种操作系统上,这种数据库根据设计了一种可以根据不同平台就可以做出相应的优化。很多大型公司都会用到。 MySQL :它也是一个关系型数据库,现在被 Oracle 公司收购,它与上述的几种大型数据库虽然有不足的地方,但是因为它可以运行在 Linux 上,用 Apache 或 Nginx 作为 Web 服务器,Mysql 作为后台数据库,PHP作为脚本解释器,可以搭建 LAMP 架构。这几款软件都是免费或开源的,而且体积小、速度快,占据了大量的市场。


MySQL 注意事项

注意事项:

1·准备源码包:mysql-5.7.17.tar.gz 2·准备源码包:boost_1_59_0.tar.gz 3·源码安装 MySQL 是需要 cmake 来编译安装的。 4·因为 MySQL 5.7 这个版本需要 boost 这个库来支撑,所以 boost 这个库必须下载,包括编译安装的时候源码编译安装的时候也需要指定 boost 库的位子。 5**·在我的百度网盘上存放了两个源码包,有需要的可以下载:MySQL 5.7 源码包** 密码是:e8ie


MySQL 的编译安装

1·安装新的编译环境

[root@localhost ~]# yum -y install
ncurses
ncurses-devel
bison
cmake
gcc
gcc-c++


2·解压 boost_1_59_0.tar.gz 到 /usr/local 下 并重命名 为boost (为了之后cmake的时候方便指定boost 库的位子)

[root@localhost ~]# tar zxvf boost_1_59_0.tar.gz -C /usr/local/ [root@localhost ~]# cd /usr/local/ [root@localhost local]# mv boost_1_59_0 boost


3·为了加强数据库的权限控制,建议使用专门的 MySQL 运行用户,不需要登陆系统,也不需要创建家目录。

[root@localhost ~]# useradd -M -s /sbin/nologin mysql


4·解压 MySQL 5.7 的包,并切换到解压后的源码目录中。

[root@localhost ~]# tar -zxvf mysql-5.7.17.tar.gz -C /opt/ [root@localhost ~]# cd /opt/mysql-5.7.17/


5·Cmake 开始配置

[root@localhost mysql-5.7.17]# cmake
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql
-DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock
-DSYSCONFDIR=/etc
-DSYSTEMD_PID_DIR=/usr/local/mysql
-DDEFAULT_CHARSET=utf8
-DDEFAULT_COLLATION=utf8_general_ci
-DWITH_INNOBASE_STORAGE_ENGINE=1
-DWITH_ARCHIVE_STORAGE_ENGINE=1
-DWITH_BLACKHOLE_STORAGE_ENGINE=1
-DWITH_PERFSCHEMA_STORAGE_ENGINE=1
-DMYSQL_DATADIR=/usr/local/mysql/data
-DWITH_BOOST=/usr/local/boost
-DWITH_SYSTEMD=1


6·Cmake 上述配置详解:

-DCMAKE_INSTALL_PREFIX //指定讲数据库安装在什么位子 -DSYSCONFDIR //指定初始化参数文件目录 -DSYSTEMD_PID_DIR //指定PID 文件位置 -DDEFAULT_CHARSET //指定默认的字符集编码 -DDEFAULT_COLLATION //指定字符集校对规则 -DMYSQL_DATADIR //指定 MySQL 数据库的存放位子 -DWITH_BOOST //指定 boost 库在什么位子,5.7版本必须添加这个参数。


7· Cmake 报错解决

如果在CMAKE的过程中有报错,当报错解决后,需要把源码目录中的CMakeCache.txt文件删除,然后再重新CMAKE,否则错误依旧


8· 编译并安装

[root@localhost mysql-5.7.17]# make && make install MySQL 5.7 这个版本 安装时间非常的长,所以需要耐心的等待,时间长短还是看自身电脑 cpu 的处理速度。 到此安装完成,但是还需要其他的调整


安装后的其他调整

1·对数据库目录权限调整

[root@localhost ~]# chown -R mysql.mysql /usr/local/mysql/


2·建立配置文件、加入以下内容:

[root@localhost ~]# vim /etc/my.cnf [client] port = 3306 default-character-set=utf8 socket = /usr/local/mysql/mysql.sock

[mysql] port = 3306 default-character-set=utf8 socket = /usr/local/mysql/mysql.sock

[mysqld] user = mysql basedir = /usr/local/mysql datadir = /usr/local/mysql/data port = 3306 character_set_server=utf8 pid-file = /usr/local/mysql/mysqld.pid socket = /usr/local/mysql/mysql.sock server-id = 1

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_AUTO_VALUE_ON_ZERO,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,PIPES_AS_CONCAT,ANSI_QUOTES


3·修改文件 /etc/my.cnf 的管理用户

[root@localhost ~]# chown mysql:mysql /etc/my.cnf


4·为了方便在任何目录下使用 MySQL 命令,需要在 /etc/profile 设置环境变量。

[root@localhost ~]# echo 'PATH=/usr/local/mysql/bin:/usr/local/mysql/lib:$PATH' >> /etc/profile echo 'export PATH' >> /etc/profile source /etc/profile


5·初始化数据库

[root@localhost ~]# cd /usr/local/mysql/ [root@localhost mysql]# bin/mysqld
--initialize-insecure
--user=mysql
--basedir=/usr/local/mysql
--datadir=/usr/local/mysql/data > 这里执行完成后会生成一个为空的登陆MySQL的密码,之后可以修改!


6·添加系统管理,为了我们的习惯,以便通过systemctl进行管理!

[root@localhost ~]# cp /usr/local/mysql/usr/lib/systemd/system/mysqld.service /usr/lib/systemd/system [root@localhost ~]# systemctl daemon-reload


7·启动 MySQL 查看端口

[root@localhost ~]# systemctl start mysqld [root@localhost ~]# netstat -anpt | grep 3306 tcp6 0 0 :::3306 :::* LISTEN 1171/mysqld MySQL的端口号是3306 启动成功


MySQL 数据库的使用

1·修改登陆 MySQL 登陆密码

[root@localhost ~]# mysqladmin -u root -p password "abc123" Enter password: //这里直接回车,因为之前初始化数据库时就给了一个空密码 命令解释:给 root 用户修改登陆密码为 “abc123”


2·登陆 MySQL 数据库

[root@localhost ~]# mysql -u root -p Enter password: //输入修改的密码 “abc123” Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 7 Server version: 5.7.17 Source distribution

Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>


3·现在已经登陆到 MySQL 中,执行以下命令,查看数据库中有哪些库

** mysql> show databases**; +--------------------+ | Database | +--------------------+ | information_schema | //这就是第一个库 | mysql | //这是第二个库,依次往下 | performance_schema | | sys | +--------------------+ 5 rows in set (0.01 sec)


4·查看库中的表 假如我们查看第一个库 information_schema 中有那些表,执行以下命令:

mysql> use information_schema; //进入 information_schema 库中 mysql> show tables; //查看有那些表,以下信息就是表的信息 +---------------------------------------+ | Tables_in_information_schema | +---------------------------------------+ | CHARACTER_SETS | | COLLATIONS | | COLLATION_CHARACTER_SET_APPLICABILITY | | COLUMNS | | COLUMN_PRIVILEGES | | ENGINES | | EVENTS | | FILES | | GLOBAL_STATUS | | GLOBAL_VARIABLES | | KEY_COLUMN_USAGE | | OPTIMIZER_TRACE | | PARAMETERS | | PARTITIONS | | PLUGINS | | PROCESSLIST | | PROFILING | | REFERENTIAL_CONSTRAINTS | | ROUTINES | | SCHEMATA | | SCHEMA_PRIVILEGES | | SESSION_STATUS | | SESSION_VARIABLES | | STATISTICS | | TABLES | | TABLESPACES | | TABLE_CONSTRAINTS | | TABLE_PRIVILEGES | | TRIGGERS | | USER_PRIVILEGES | | VIEWS | | INNODB_LOCKS | | INNODB_TRX | | INNODB_SYS_DATAFILES | | INNODB_FT_CONFIG | | INNODB_SYS_VIRTUAL | | INNODB_CMP | | INNODB_FT_BEING_DELETED | | INNODB_CMP_RESET | | INNODB_CMP_PER_INDEX | | INNODB_CMPMEM_RESET | | INNODB_FT_DELETED | | INNODB_BUFFER_PAGE_LRU | | INNODB_LOCK_WAITS | | INNODB_TEMP_TABLE_INFO | | INNODB_SYS_INDEXES | | INNODB_SYS_TABLES | | INNODB_SYS_FIELDS | | INNODB_CMP_PER_INDEX_RESET | | INNODB_BUFFER_PAGE | | INNODB_FT_DEFAULT_STOPWORD | | INNODB_FT_INDEX_TABLE | | INNODB_FT_INDEX_CACHE | | INNODB_SYS_TABLESPACES | | INNODB_METRICS | | INNODB_SYS_FOREIGN_COLS | | INNODB_CMPMEM | | INNODB_BUFFER_POOL_STATS | | INNODB_SYS_COLUMNS | | INNODB_SYS_FOREIGN | | INNODB_SYS_TABLESTATS | +---------------------------------------+ 61 rows in set (0.00 sec)


5·查看表中有那些数据,这里以第一个表为列

mysql> select * from CHARACTER_SETS; +--------------------+----------------------+---------------------------------+--------+ | CHARACTER_SET_NAME | DEFAULT_COLLATE_NAME | DESCRIPTION | MAXLEN | +--------------------+----------------------+---------------------------------+--------+ | big5 | big5_chinese_ci | Big5 Traditional Chinese | 2 | | dec8 | dec8_swedish_ci | DEC West European | 1 | | cp850 | cp850_general_ci | DOS West European | 1 | 只显示部分信息。


6·简单命令介绍:

1·创建新的库名为school create database school;


2·创建新的表 名为 info creata table info (id int not null primary key auto_increment,name char(20) not null,target not null char(30)); //这里需要定义表格中的各字段


3·更新表中的信息 update info set score=75 where id=6; (更新id=6列中的score=75)


4·删除表中的信息 delete from info where name=‘test’;(删除来自info表中的name=test整行)


5·在表中插入新的数据 insert into info (id,name,score)values(5,‘tianqi’,55);


6·删除表、删除库 drop table info;(删除表) drop database school;(删除库)


7·退出 MySQL exit 或者 quit


Windows 安装MySQL

Windows 中安装软件很简单 1·下载安装程序,可以在www.baidu.com 中找。以下是安装步骤 2·在安装 MySQL 之前如果电脑 .NET 版本在4.0 以下建议更新到 4.0 以上 Windows MySQL版本和 .NET 4.5 版本软件包需要的可以在我的百度网盘下载:window版MySQL安装包 密码:agh6





5·下面不需要修改什么,直接根据引导,下一步就能安装成功,打开软件,输入密码。如下图


Windows 的 cmd 远程连接 Linux MySQL

1·远程连接 Linux 中的MySQL,就需要MySQL的授权。执行以下命令授权。

[root@localhost ~]# mysql -u root -p Enter password: //登陆MySQL 输入你的密码


** 2·授权**

mysql> grant all privileges on . to 'root'@'%' identified by 'abc123' with grant option; 这条命令的意思: 第一个 * 代表:所有的库 第二个 * 代表:库中所有的表 root 代表:允许使用 root 用户登陆 @ :分割符号 % :允许所有的网段的人 abc123 :登陆密码是abc123


3·授权成功,但是想要在window中使用MySQL ,还需要把MySQL的命令添加环境变量,使windows 识别 MySQL命令。

1·在window中找到MySQL的命令存放的位子


2·把MySQL的命令添加环境变量,添加时需要额外注意,还需要以分号(;)隔开!


3·打开 cmd 验证远程登陆效果


总结

1·在源码编译的时候需要 boost 这个库,否则会报错。这里需要注意 2·如果在CMAKE的过程中有报错,当报错解决后,需要把源码目录中的CMakeCache.txt文件删除,然后再重新CMAKE,否则错误依旧会存在 3·安装window版MySQL时需要 .NET 版本在4.0以上 4·在cmd 远程连接MySQL时需要添加环境变量,否则window不识别MySQL命令 5·添加环境变量需要特别注意别多了字符或删除了字符,没把握的先把原本的路径都复制下来,这样有错的话还可以恢复!