linux之数据库Mysql( 安装 基础配置 更改 提示字符)和Windows 安装MySQL和MYSQL数据库命令 库 表 和安装Navicat Premium 12 桌面数据库

数据库基础  安装 基础配置 更改 提示字符

1.)MySQL 历史 开源数据库 支持的编程语言 发行版本 下载官网主页

历史

发音:MySQL (/ˌmaɪˌɛsˌkjuːˈɛl/ "My S-Q-L")

“My” 合伙奠基人Michael Widenius的女儿的名字

“SQL”是结构化查询语言的缩写

最流行的开源关系型数据库系统

由瑞典公司MySQL AB公司开发

合伙人David Axmark, Allan Larsson 和 Michael Widenius

1995年5月23日发行了第一个版本

美国SUN公司于2008年收购MYSQL

美国ORACLE公司于2010年收购SUN公司

当前MySQL属于ORACLE 公司

 

 

最流行的开源数据库

    

全球排名前 10 的 Web 站点中有 9 个使用该数据库

LAMP(linux,apache,mysql,perl/php/python)中的 “M”

社交网站、开源论坛、开源内容管理系统wordpress,joomla,drupal广泛使用

超过400家的著名企业使用MYSQL

数据库引擎排名:https://db-engines.com/en/ranking

 

 

多种编程语言提供MySQL支持

C

C++

JAVA (JDBC)

.NET (ODBC)

PHP

PYTHON

PERL

官方提供的MySQL连接器:https://dev.mysql.com/downloads/connector/

 

 

MySQL支持的操作系统

WINDOWS (32位,64位)

LINUX (32位,64位)

Oracle Linux / Red Hat / CentOS

Canonical Ubuntu

SUSE

Debian

MacOS (32位,64位)

Oracle Solaris

 

 

MySQL发行版本

社区版 (无需注册免费下载)

MySQL Community Edition (GPL)

MySQL Cluster (GPL)

 

企业版 可以注册后免费下载,商业收费)

MySQL Enterprise Edition

MySQL Cluster CGE

 

 

 

MySQL常用Web连接

http://www.mysql.com官网主页

https://www.mysql.com/downloads/下载

https://dev.mysql.com/doc/文档

https://forums.mysql.com/论坛

https://dev.mysql.com/doc/index-other.html示例数据库

 

2.)CentOS7 MySQL 的RPM安装  降低安全认证 修改bash提示符 支持utf8中文字符

1.linux安装MySQL软件  查询相关rpm包  启动服务

mysql-5.7.28-1.el7.x86_64.rpm-bundle.tar上传到/root

tar -xvf mysql-5.7.28-1.el7.x86_64.rpm-bundle.tar解压

 

 

 

 

yum -y install net-tools libaio perl需要这个安装包

yum -y install mysql-community-{client,common,server,libs}-*.rpm  安装需要的服务

 

 

 

 

查询RPM包命令:

rpm -qpi xxx.rpm查询rpm包信息

rpm -qi xxx查询已安装包信息

rpm -qpl xxx.rpm查询rpm包中的文件列表

rpm -ql xxx查询已安装包中的文件列表

yum provides /usr/bin/unzip 查询哪些包提供了某文件

yum provides */unzip   

yum provides /etc/my.cnf

 

vim /etc/selinux/config 关闭防火墙 或者 setenforce 0

改为SELINUX=disabled

 

 

 

 

 

 

 

systemctl status firewalld查看防火墙状态

 

systemctl start mysqld启动mysql服务 初始化配置

cd /var/lib/mysql     

ls             查看服务          

 

vim /var/log/mysqld.log 获取mysql root用户临时密码

grep password /var/log/mysqld.log 或者在路径下查看密码

 

 

 

 

 

2.登录MySQL修改密码   降低密码认证安全 查看日志排错

mysql -uroot -p  输入临时密码   (上一步查看的密码)

 

 

 

 

alter user root@localhost identified by 'AAbb11!!';  登录后修改密码

show plugins;刷新权限

 

 

 

 

5.7版MySQL密码认证策略默认较高,要至少8位大小写混合密码;

 

永久 降低密码认证策略

为练习方便,后续可以降低密码认证策略,使用简单密码

vi /etc/my.cnf

validate_password=0 添加 密码为空

 

 

 

 

systemctl restart mysqld 重启服务

 

mysql -uroot -p 输入新改AAbb11!!密码登录

alter user root@localhost identified by “ 123456”  降低认证策略后  可用空密码

mysql>set password=''; 使用空密码

 

查看日志 错误排查

mysql初始化、启动、重启过程中,如果遇到问题,可以查看错误日志

tail -f /var/log/mysqld.log错误日志

3.忘记MySQL密码解决办法  修改支持中文

systemctl stop mysqld  停止服务

 

systemctl 环境变量MYSQLD_OPTS设置参数  #号下直接执行即可

systemctl set-environment MYSQLD_OPTS='--skip-grant-tables --skip-networking'

systemctl show-environment

:

skip-grant-tables 跳过授权表 没有这个就没有密码了

skip-networking跳过网络  允许用户通过网络登录(安全起见)

 

vim /etc/my.cnf

#validate_password=0注释这一行

systemctl start mysqld启动服务 登录

 

 

 

 

 

mysql      不用录入用户名和密码就可以登录了  进入mysql

update mysql.user set authentication_string=password('123456') where user='root' and host='localhost';使用SQL语句更新新密码为  123456

quit退出

 

systemctl set-environment MYSQLD_OPTS=''  置空systemctl 环境变量

vim /etc/my.cnf  取消注释validate_password=0

systemctl restart mysqld 重启服务 

mysql -uroot  -p   然后输入新密码123456  登录

 

 

 

 

4.修改/etc/my.cnf支持中文utf8字符集  修改bash提示符

vim /etc/my.cnf修改配置,设置字符集为utf8

 

character-set-server=utf8

 

systemctl restart mysqld重起服务

 

mysql -uroot  -p  

status登录MySQL查看状态

 

 

 

 

 

 

 

 

vi /root/.bash_profile添加变量mysql

 

export MYSQL_PS1="\u@\h[\d]>" 保存退出

 

. .bash_profile刷新bash配置 在root下

mysql -uroot -p登录查看  修改后的mysql登录提示符为本机名

 

 

修改登录提示符的好处:

*可以看到连接到哪个mysql服务器

*减少人为失误

如果提示符都是mysql>,容易出现误删表、误删库的情况,有可能本来要删除测试库的表,没有注意连接到了生产机,提示符都是mysql>,没有注意,确删除了生产库中对应的表

3.Windows 安装MySQL zip版 文件扩展名

1.windows 7和10 显示文件扩展名

Windows7    控制面板   外观和个性化  文件夹选项   显示隐藏的文件夹    确定

 

Windows10   打开我的电脑 查看 选项  查看  去掉隐藏已知文件类型的扩展名

 

 

 

 

 

 

 

 

2.安装vc2013  和EDITPLUS增强文本编辑器(非必须)  

Windows 安装vc2013  (如果没有则安装vc2013)

管理员身份运行

 

 

 

 

windows自带notepad功能有限

管理员身份运行 然后安装 输入注册码即可

 

 

 

3. MySQL 解压安装包 到F:盘 添加环境变量

1.解压安装包

解压到F盘  改目录名字为  mysql157

 

 

 

 

 

2.将MySQL软件bin目录添加到PATH环境变量中

我的电脑 属性 高级系统设置  环境变量 编辑 系统 Path  在后面加bin目录  ;F:\mysql157\bin

 

 

4.在MySQL安装目录下创建my.cnf文件

my.cnf        创建文件  粘贴 默认选项

 

 

 

 

[mysqld]

basedir=f:\mysql157

datadir=f:\mysql157\date

character-set-server=utf8

explicit_defaults_for_timestamp 

 

注:

basedir=f:\mysql目录

datadir=f:\mysql\date    存放位置

explicit_defaults_for_timestamp针对表中timestamp类型的列,默认不填写该列值mysql自主主张修改为0000-00-00 00:00:00,有人不喜欢这样,mysql提供了explicit_defaults_for_timestamp选项,不填写就为null值

 

5安装MySQL服务  查看服务

Windows系统  以管理员身份启动cmd窗口,否则会遇到权限不足而无法安装

 

F:\bin\mysqld --install MySQL             安装mysqld服务  MySQL 自定义服务名字

 

查看MySQL服务

 

 

 

 

 

6初始化安装MySQL数据库  启动服务  windows 登录查看

管理员权限cmd窗口运行

有密码对应参数:

F:\mysql157\bin\mysqld --initialize

注意:服务启动后临时密码放在f:\mysql157\data\xxx-PC.err中

 

无密码对应参数 本次安装选择

F:\mysql157\bin\mysqld --initialize-insecure

 

 

 

 

 

 

启动数据库服务

Win+Rservices.msc

或者打开任务管理器  服务 启动mysql服务

 

7.MySQL连接测试

mysql -uroot -p 回车

 

 

 

 

select user,host,authentication_string from mysql.user;    查看mysql库的user表

 

 

 

 

 

如果选择有密码初始化,登录mysql后需要修改密码:

alter user root@localhost identified by '123456';设置密码123456

 

 

4.MYSQL数据库命令  库 表

1.MySQL 是客户端服务器(C/S)架构

 

 

 

 

 

常见客户端程序:

mysql 原始自带客户端程序,面向程序员、管理员

各类编程语言的mysql连接器面向程序员,程序连接器往往放在应用服务器上

图形客户端提供直观高效图形界面,底层仍然是mysql客户端程序

面向:程序员、管理员

mysql workbench(免费)

navicat(收费)

dbforge(收费)

 

MySQLD服务器端程序

 

2.MySQL服务 运行状态 (开机启动)

适用于使用systemd的linux版本:

 

systemctl start mysqld启动MySQL服务

systemctl stop mysqld关闭MySQL服务

systemctl restart mysqld重新启动MySQL服务

systemctl status mysqld查看当前MySQL服务状态

 

设置/禁止服务开机自动启动
chkconfig [服务] [on|off]

 

开机运行状态

systemctl status mysqld查看是否开机启动

systemctl enable mysqld设置开机启动

systemctl disable mysqld设置开机不启动

3.客户端 连接 退出MySQL服务  查看服务器版本

连接MySQL (C/S结构)

客户端输入mysql

mysql -uroot -p 登录 输入密码

 

-u USERNAME   用户名     

-h HOST       服务器主机(可以是IP地址或域名)

-p PASSWORD  用户的密码

 

 

 

 

使用短选项:

mysql -uroot -hlocalhost -p

使用长选项:

mysql --user=root --password

mysql --user=root --host=localhost --password

 

在客户端退出连接

quit     exit

 

查看服务器版本

status    select version();

 

 

 

 

 

4.MySQL数据库结构 基本操作命令查看 库 表 行列 库表存放位置

核心存储单元是表数据放在表中(类似于excel表)

 放在数据库(相当于目录)下

 由列和行组成

(column)也被称为字段(field)

(row)也被称为记录(record)或数据(data)

一个表至少有一列

一个表可以有0到N行

 

 

 

 

 

数据库1(目录1)

(文件)

1,列2,列3,……

1,行2,行3,……

数据库2(目录2)

1

2

数据库3(目录3)

1

……

 

查看 数据库 中的数据表

 

mysql -u root -p              ---输入密码123456

show databases;              --查看数据库

use mysql;                    ---进入库         相当于进入目录 ( cd 库)      

show tables;                  ---查看库中的表   表相当于列出目录中的文件 ( ls )

 

select * from user \G;         ---查看mysql库中user表的信息  \G 排序把列的值转成行来看

desc user;                    ---查看mysql库user表中有哪些列

select * from mysql.user;  ---查看mysql库中user表有哪些行

 

 

 

 

 

 

 

show tables from sys;     查看的数据库不是当前数据库在mysql库中查看sys的表

 

 

 

 

 

查看当前使用的数据库   查看当前位于哪个目录中 ( 相当于pwd )

mysql> status

mysql> select database();

 

 

 

 

 

 

查看指定mysql数据库中的指定user表有哪些列

DESC命令查询表的结构相关属性

 

desc mysql.user;  查看mysql库中的user表中列  信息

或者

登录mysql

mysql> show databases;查看数据库

mysql> use mysql;进入mysql库

mysql> show tables;查看库中的表

mysql> desc user;进入user表

desc user;                           查看表结构

 

查看指定mysql数据库中user表有哪些行

mysql>select * from mysql.user;

 

 

 

 

 

 

查看数据库、表、列存放位置

mysql> show variables like 'datadir';        存放位置

 

 

 

 

ls -l /var/lib/mysql    #数据库对应磁盘的目录

 

 

 

 

 

mysql库user为例查看其磁盘对应的文件

mysql> show tables from mysql like 'user';

 

 

 

 

ls -l /var/lib/mysql/mysql/user* 数据

mysql库的user表对应/var/lib/mysql/mysql/user.frm,user.MYD,user.MYI

 

cd  /var/lib/mysql/mysql/

 

 

 

 

Frm存放表结构    strings user.frm   查看user表结构

MYD存放数据strings /var/lib/mysql/mysql/user.MYD   查看数据

MYI存放索引

 

user表中的列相关信息存放  表结构

mysql> desc mysql.user;

root# strings /var/lib/mysql/mysql/user.frm对应文件存放位置

var/lib/mysql/mysql/user.frmuser

 

 

 

 

 

mysql> select user,host,authentication_string from mysql.user;数据

root# strings /var/lib/mysql/mysql/user.MYD

 

user表中的行可以在/var/lib/mysql/mysql/user.MYD中找到一些内容

 

 

 

5.创建数据库 create database 库; 同时指定字符集和排序规则 查看当前用户 服务器时间

 

格式:

CREATE DATABASE [IF NOT EXISTS] ‘DB_NAME’;

[IF NOT EXISTS如果创建用户存在就不创建] 创建语句不会报错,会产生告警信息

同时可以指定字符集和排序规则 不能创建同名的数据库,类似于在不能在一个目录下创建同名目录

 

create database uuuu;                  --创建uuuu数据库

create database uuuuu charset=utf8;     --创建uuuuu数据库 指定字符集

show databases;                         --查看数据库

 

 

 

 

 

创建test数据库,指定库中的表列默认以utf8编码存储字符数据

mysql> create database test character set 'utf8' collate 'utf8_general_ci';

 

character set 指定字符串以何种编码存储在库中建表,没有指定编码存储,默认使用utf8编码存储表中的字符串

collate定义字符串排序的顺序和比较的方式

utf8_general_ci表示字符串按照UTF8编码比较大小,不区分大小写ci表示case insensitive

 

 

查看当前连接用户

mysql> select user();

 

 

 

 

 

查看当前服务器日期和时间

mysql> select now();

 

 

 

 

 

 

6.删除数据库 drop database 库;   (慎用)

格式:

DROP DATABASE [IF EXISTS] ‘DB_NAME’;     (非常危险,生产环境不建议使用)

[IF EXISTS] 如果存在就删除,不存在就不删除

 

drop database uuuu;       -删除uuuu库

show databases;          -查看所有数据库

 

 

 

 

7.创建表:create table 表kkk (数据类型,修饰符)

格式:  CREATE TABLE   表名(字段1 数据类型 修饰符,字段2 数据类型 修饰符......) [ENGINE=’]

use uuuuu;进入数据库  

create table kkk ( id int(5)  primary key,name char(16) );   创建表 第一个为主键

desc kkk;

 

 

 

 

 

 

 

create table students(id int(5) unsigned auto_increment primary key,name char(16) not null);

 

create table     创建一个数据表

students        数据表为students

id              第一个字段  id

int(5)     存放数据是整形5给字节

unsigned  无符号

auto_increment  自动增长

primary key     主键

namename字段

char(16)  16个字符

not null不能为空

 

查看存储引擎:SHOW ENGINES;

8.删除表;  drop table 表;删除数据库 前提不能有人使用这个数据库

drop table  [IF EXISTS] ‘tbl_name’;  非常危险,谨慎操作

 [IF EXISTS]    如果存在就删除

drop table kkk;         -删除kkk则这个表

show tables;            --查看表

 

 

 

 

 

注意:

磁盘相关目录会被删除

如果目录中的所有表文件也会被删除

千万不要删除mysql,sys,performance_schema等系统数据库  --系统

否则mysql服务器程序崩溃导致数据库不可用

 

 

9.配置MYSQL_PS1环境变量 更改提示符

vi /root/.bash_profile

export MYSQL_PS1="\u@\h[\d]>"

 

\u 用户

\h 客户端主机

\d 当前选择的数据库

 

 

 

 

mysql -uroot -p 登录后登录提示符变为本机名称    root@localhost[(none)]>

 

 

10.MySQL常用命令 查看帮助 会话状态  修改命令结束符 返回结果到指定文件中

help  \?查看帮助

 

status \s查看连接会话状态

 

\d 新结束符修改命令结束符

默认:命令结束符为“;”,客户端程序遇到“;”会把“;”左边的语句发给MySQLD执行,执行结果会发给客户端程序显示

 

\G 改变返回结果显示方式

\G也是命令结束符。客户端遇到\G会把\G左边的语句发给MySQLD执行,但是返回的结果以垂直的方式显示,适合表的列数多的情况,如果使用“;”由于一行数据屏幕显示不下,会有折行的情况出现,不利于人来查看,使用\G可以解决这个问题。

 

将返回屏幕执行结果输出一份到指定文件

tee

例如:

tee /tmp/result.txt  屏幕上的输出另存一份到/tmp/result.txt文件中

取消tee使用notee命令

 

\c 回车取消当前输入的语句

 

 

 

 

 

如果输入语句时,缺失单引号或双引号(个数为奇数),不会将该语句发送给服务器执行,此时需要补齐单引号或双引号后在\c取消该语句

 

 

 

 

 

 

查看语句使用语法

查看如何用create database:

help create database

查看如何用create table:

help create table

 

 

 

 

 

执行操作系统命令

system 系统命令字

 

 

 

 

 

 

11. 传输库脚本到 mysql   source   /root/文件位置;

先查看库脚本位置

 

 

 

 

 

 cat student_utf8.sql 查看

 

 

 

 

 

将文件传到mysql

source /root/student_utf8.sql将文件传到mysql

 

 

 

 

show databases;  查看库

 

 

 

 

 

use demo;

show tables;查看表

 

 

 

 

select * from bmi\G;查看表信息 (所有 排列查看)

 

 

 

 

5.允许 用户远程登录到 MySQL

对于root用户,MySQL从安全角度考虑,默认仅仅允许本地连接,如果root用户远程登录需要配置,

 

虚拟机本地登录

mysql -uroot -p

修改root用户名% %任何主机都可登录

rename user root@localhost to root@'%';

select user,host from mysql.user;查看用户和主机

 

 

 

 

 

配置虚拟机防火墙

允许3306端口进入

Firewall-cmd  --zone=public --add-port=3306/tcp  --permanent

重起防火墙:

firewall-cmd  --reload  

 

查看虚拟机IP

Ipconfig(windows)

ip a (linux)

 

解压windows的mysql压缩包中的mysql.exe到主机d:\如果主机没有安装mysql

 

主机测试连接

mysql -uroot -p -h虚拟机ip

主机配置mysql_ps1环境变量如果没有配置,修改mysql登录提示符:

 

vi /root/.bash_profile

export MYSQL_PS1="\u@\h[\d]>"

 

\u 用户

\h 客户端主机

\d 当前选择的数据库

6.安装Navicat Premium 12  桌面数据库

 

 

 

 

直接安装 不需要改目录  因为是破解版

 

 

 

 

下一步 我同意 下一步 下一步 下一步 下一步

然后 解压注册机    navicat_keygen5.1.zip  到当前目录

 

 

 

 

点开第一个 Navicat_Keygen_Patch_v5.1_By_DFoX.exe       管理员运行

 

先点右边的  Patch

 

 

 

 

 

这才是打开

 

启动程序    然后点注册

 

 

 

 

 

 

 

在右边点    会自动填写注册码    

 

 

 

 

 

手动激活

 

 

 

 

 

然后点pase   复制过来请求码

 

 

 

 

 

生成激活码     激活     确定    重启

 

 

 

 

 

 

posted @ 2020-08-02 11:22  浅唱I  阅读(327)  评论(0编辑  收藏  举报