MYSQL(安装配置)

介绍

MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的 RDBMS (Relational Database Management System,关系数据库管理系统) 应用软件。
MySQL是一种关系数据库管理系统,关系数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。
MySQL所使用的 SQL 语言是用于访问数据库的最常用标准化语言。MySQL 软件采用了双授权政策,分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择 MySQL 作为网站数据库。

下载和安装

mysql为我们提供开源的安装在各个操作系统上的安装包,包括ios,linux,windows

Windows版本:

下载:

1、打开网址,https://www.mysql.com/,点击downloads之后跳转到https://www.mysql.com/downloads,选择MySQL Community (GPL) Downloads选项

2、点击MySQL Community Server进入https://dev.mysql.com/downloads/mysql/页面,选择操作系统后选择压缩包方式下载,如果选择installer方式,mysql会自动进行初始化和配置环境变量,不需要你自己配置了

3、可以不用登陆或者注册,直接点击No thanks,just start my download就可以下载了。

解压:

如果想要让MySQL安装在指定目录,那么就将解压后的文件夹移动到指定目录,如:C:\mysql-8.0.22-winx64

初始化:

MySQL解压后的 bin 目录下有一大堆的可执行文件,执行如下命令初始化数据:

#cd c:\mysql-8.0.22-winx64\bin
 
#mysqld --initialize-insecure

启动MySQL服务:

执行命令启动MySQL服务

# 进入可执行文件目录
cd c:\mysql-8.0.22-winx64\bin
 
# 启动MySQL服务
mysqld

启动MySQL客户端并连接MySQL服务:

由于初始化时使用的【mysqld --initialize-insecure】命令,其默认未给root账户设置密码

# 进入可执行文件目录
cd c:\mysql-8.0.22-winx64\bin
 
# 连接MySQL服务器
mysql -u root -p
 
# 提示请输入密码,初始密码为空,直接回车就行

输入回车,见下图表示安装成功:

 但是,在上述步骤中重复的进入可执行文件目录比较繁琐,如想日后操作简便,可以做如下操作。

a. 添加环境变量

将MySQL可执行bin文件添加到环境变量中,从而执行执行命令即可

【右键计算机】-->【属性】-->【高级系统设置】-->【高级】-->【环境变量】-->【在第二个内容框中找到 变量名为Path 的一行,双击】 --> 【将MySQL的bin目录路径追加到变值值中,用 ;分割】
 
如:
D:\mysql-8.0.20-winx64\bin;D:\Program Files\nodejs\;D:\Program Files\Appium_1.4.16.1\node_modules\.bin;D:\Program Files\Android\android-sdk\platform-tools;D:\Program Files\Android\android-sdk\tools;D:\Program Files\Nox\bin;

再启动服务并连接时,只需:

# 启动MySQL服务,在终端输入
mysqld
 
# 连接MySQL服务,在终端输入:
mysql -u root -p

b. 将MySQL服务制作成windows服务:

# 制作MySQL的Windows服务,在终端执行此命令:
"c:\mysql-8.0.22-winx64\bin\mysqld" --install
 
# 移除MySQL的Windows服务,在终端执行此命令:
"c:\mysql-8.0.22-winx64\bin\mysqld" --remove

注册成服务之后,以后再启动和关闭MySQL服务时,仅需执行如下命令:

net start mysql    # 启动MySQL服务
 
net stop mysql     # 关闭MySQL服务
#在windows操作系统上没有重启mysql服务的命令
#如果要重启服务,只能先stop再start
1.下载完成后解压到目标盘,这里我安装到G盘。G:\work_job\mysql-8.0.12-winx64
2.安装前配置
在MySQL解压目录中新建文件夹data
3.创建一个my.ini文件放在bin目录里面。

配置文件 my.ini 内容如下:
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8 

[mysqld]
#设置3306端口
port = 3306 
# 设置mysql的安装目录
basedir=G:\work_job\mysql-8.0.12-winx64
# 设置mysql数据库的数据的存放目录
datadir=G:\work_job\mysql-8.0.12-winx64\data
# 允许最大连接数
max_connections=200
# 服务端使用的字符集默认为8比特编码的latin1字符集
character-set-server=utf8
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
4、开始安装
以管理员身份运行DOS窗口
5、在dos窗口命令操作
    1.输入:mysqld --initialize --console
    配置环境信息,初始root密码会带出,root@localhost后面的即是。
    2.接下来输入: mysqld -install  安装mysql服务。
        若提示已存在,则先输入 mysql -remove删除。
    3.再次输入:mysqld -install .
        安装成功会提示 Service successfully installed.
    4.最后输入net start mysql 启动服务即可。net stop mysql停止服务
6、初始登录MySQL库。
初次登录使用初始密码
输入:mysql -u root -p
即上图的root@localhost的内容
登录成功后,修过root密码
alter user 'root'@'localhost' identified with mysql_native_password by '123456';
7、查看mysql初始自带数据库信息
输入:show databases;
查询默认用户信息,host代表仅本机登录,允许所有IP访问,可以直接改成‘%’
另外mysql8.0以后的版本,加密方式更改了,如下图。
故创建用户需指定加密方式
create user 'test'@'%' identified with mysql_native_password by '123456';

Host is not allowed to connect to this MySQL server 解决方法:
先说说这个错误,其实就是我们的MySQL不允许远程登录,所以远程登录失败了,解决方法如下:
1、在装有MySQL的机器上登录MySQL:mysql -u root -p密码
2、执行use mysql;
3、执行update user set host = '%' where user = 'root';这一句执行完可能会报错,不用管它。
4、执行FLUSH PRIVILEGES;
Windows配置MySQL
MySQL抛出异常:lock wait timeout exceeded解决方案:
我们可以用下面三张表来查原因:
innodb_trx 当前运行的所有事务
innodb_locks 当前出现的锁
innodb_lock_waits 锁等待的对应关系
如果数据库中有锁的话,我们可以使用这条语句来查看:select * from information_schema.innodb_trx
记录的id为199120823069, trx_mysql_thread_id 为 738178711, 所以我们执行:kill 738178711杀掉这个MySQL语句的线程即可
// 查询线程
// SELECT * from information_schema.processlist WHERE id = 738178711;
// show full processlist;

如果以上方法杀掉线程,但还是不能解决,则我们就可以查找执行线程用时比较久的用户,然后直接干掉
SELECT * from information_schema.`PROCESSLIST` WHERE Time > 1000 AND USER = 'wonguser' ORDER BY TIME desc;
kill 740097562
这样把所有耗时比较久的任务干掉,就可以解决这个问题了
MySQL抛出异常:lock wait timeout exceeded

Linux版本

环境和资源地址:

*** centos 7 ***

http://repo.mysql.com/yum/mysql-5.6-community/

安装:

安装方式一(在线安装):

# 查看和mysql有关的安装包
yum search mysql 

# 安装mysql社区版本yum源
yum -y install http://repo.mysql.com/yum/mysql-5.6-community/el/7/x86_64/mysql-community-release-el7-5.noarch.rpm


# 找到community社区版本的mysql包
yum search mysql |grep community

# 使用yum安装下列
yum -y install mysql-community-server.x86_64 mysql-community-client.x86_64 mysql-community-server.x86_64 mysql-community-client.x86_64
安装方式二(离线安装):

# 下载离线包
yumdownloader mysql-community-server.x86_64 mysql-community-client.x86_64 mysql-community-libs.x86_64 mysql-community-common.x86_64

# 安装
yum -y install mysql-community-client-5.6.41-2.el7.x86_64.rpm mysql-community-server-5.6.41-2.el7.x86_64.rpm mysql-community-common-5.6.41-2.el7.x86_64.rpm mysql-community-libs-5.6.41-2.el7.x86_64.rpm

操作mysql相关常用shell命令:

# 启停服务
systemctl {start|stop|restart|status} mysqld.service
systemctl start mysqld.service

# 查看服务状态
systemctl status mysqld.service

# 安全初始化
/usr/bin/mysql_secure_installation

# 停系统防火墙
systemctl stop firewalld.service

# 查看强制访问控制状态
getenforce

# 关闭强制访问控制策略
setenforce 0

登陆和初始化密码:

# 创建root远程登陆密码
mysql -h 127.0.0.1 -u root -p

mysql> grant all privileges on *.* to root@'%' identified by "root";

mysql> flush privileges;
查询所有Mysql对应的文件夹:
# whereis mysql
安装mysql:# yum install -y mysql-server
删除mysql:# rpm -e --nodeps mysql-libs-5.1.73-5.el6_6.x86_64
设置mysql服务开机启动:# systemctl enable mysqld
启动mysql服务:# systemctl start mysqld
查看MySQL服务是否已启动:# systemctl status mysqld    

进入mysql进行设置:# mysql -u root -p
开放3306端口,允许使用用户名root密码root-1234从任何主机连接到mysql服务器。
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root-1234' WITH GRANT OPTION;
mysql> FLUSH PRIVILEGES;
mysql> quit;

Mac版本:

下载:

1、打开网址,https://www.mysql.com/,点击downloads之后跳转到https://www.mysql.com/downloads,选择MySQL Community (GPL) Downloads选项

2、点击MySQL Community Server进入https://dev.mysql.com/downloads/mysql/页面,选择Mac操作系统后选择压缩包方式下载

3、可以不用登陆或者注册,直接点击No thanks,just start my download就可以下载了。

4、双击下载好的dmg文件,会弹出pkg弹框,再双击pkg图标,进入安装界面

 5、在安装界面上一路继续,最后就安装成功了。

 

环境变量:

第一步 :在终端切换到根目录,编辑./.bash_profile文件

$ cd ~
$ vim ./.bash_profile

第二步 :进入vim 编辑环境。 按下i 进入 insert 模式 ,输入

export PATH=$PATH:/usr/local/mysql/bin
export PATH=$PATH:/usr/local/mysql/support-files

第三步 :按下esc 退出 insert 模式,输入:wq保存配置文件。

:wq

第四步 :在终端界面下输入以下命令,让配置文件的修改生效,并查看环境变量是否设置成功

$ source ~/.bash_profile 
$ echo $PATH
停止MySQL服务
sudo mysql.server stop

重启MySQL服务
sudo mysql.server restart

查看MySQL服务状态
sudo mysql.server status
MySQL服务的启停和状态的查看

启动:

第一步 :终端界面下输入

sudo mysql.server start

第二步 :启动mysql服务,启动成功后继续输入

mysql -u root -p

第三步 :直接回车进入数据库,看到下列欢迎页面

初始化设置:

设置初始化密码,进入数据库mysql数据库之后执行下面的语句,设置当前root用户的密码为root

set password = password('root');

#退出sql界面
#exit

配置:

进入到 /usr/local/mysql/support-files 目录。里面有个文件:my-default.cnf

将其复制到桌面上,改名为my.cnf,将内容替换为。

[mysqld]
default-storage-engine=INNODB
character-set-server=utf8
port = 3306

[client]
default-character-set=utf8

将修改后的文件my.cnf复制到 /etc 目录下。

重启mysql

#检测修改结果
$mysql>>>show variables like '%char%';

至此数据库就可以使用了

初识sql语句

#进入mysql客户端
$mysql
mysql> select user();  #查看当前用户
mysql> exit     # 也可以用\q quit退出

# 默认用户登陆之后并没有实际操作的权限
# 需要使用管理员root用户登陆
$ mysql -uroot -p   # mysql5.6默认是没有密码的
#遇到password直接按回车键
mysql> set password = password('root'); # 给当前数据库设置密码

# 创建账号
mysql> create user 'eva'@'192.168.10.%'   IDENTIFIED BY '123';# 指示网段
mysql> create user 'eva'@'192.168.10.5'   # 指示某机器可以连接
mysql> create user 'eva'@'%'                    #指示所有机器都可以连接  
mysql> show grants for 'eva'@'192.168.10.5';查看某个用户的权限 
# 远程登陆
$ mysql -uroot -p123 -h 192.168.10.3

# 给账号授权
mysql> grant all on *.* to 'eva'@'%';
mysql> flush privileges;    # 刷新使授权立即生效

# 创建账号并授权
mysql> grant all on *.* to 'eva'@'%' identified by '123' 
mysql的账号操作

 设想一下,当我们想要从文件中存取数据的时候,是一个非常繁琐的过程,主要是因为文件中所有的内容对我们来说是连续的,没有规则的。如果我们将数据按照规则存在一个文件中,在设计一种规则可以拼凑组合成我们需要的操作,并通过这些指示在文件中存取数据,那么操作数据是不是能够变得更加简单快速呢?这串规则就被我们成为SQL。

  SQL : 结构化查询语言(Structured Query Language)简称SQL(发音:/ˈes kjuː ˈel/ "S-Q-L"),是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统

  SQL语言主要用于存取数据、查询数据、更新数据和管理关系数据库系统,SQL语言由IBM开发。SQL语言分为3种类型:

  1、DDL语句 数据库定义语言: 数据库、表、视图、索引、存储过程,例如CREATE DROP ALTER

  2、DML语句 数据库操纵语言: 插入数据INSERT、删除数据DELETE、更新数据UPDATE、查询数据SELECT

  3、DCL语句 数据库控制语言: 例如控制用户的访问权限GRANT、REVOKE

1. 操作文件夹(库)
   增:create database db1 charset utf8;
   查:show databases;
   改:alter database db1 charset latin1;
   删除: drop database db1;

2. 操作文件(表)
   先切换到文件夹下:use db1
   增:create table t1(id int,name char);
   查:show tables;
   改:alter table t1 modify name char(3);
      alter table t1 change name name1 char(2);
   删:drop table t1;

3. 操作文件中的内容(记录)
   增:insert into t1 values(1,'egon1'),(2,'egon2'),(3,'egon3');
   查:select * from t1;
   改:update t1 set name='sb' where id=2;
   删:delete from t1 where id=1;

   清空表:
       delete from t1; #如果有自增id,新增的数据,仍然是以删除前的最后一样作为起始。
       truncate table t1;数据量大,删除速度比上一条快,且直接从零开始,

*auto_increment 表示:自增
*primary key 表示:约束(不能重复且不能为空);加速查找

 

posted @ 2020-12-23 10:24  Blues-Li  阅读(32)  评论(0)    收藏  举报