数据库(Database)是按照数据结构来组织、存储和管理数据的仓库mysql
数据库存储数据的优先:web
如今咱们使用关系型数据库管理系统(RDBMS)来存储和管理的大数据量。所谓的关系型数据库,是创建在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据。sql
RDBMS即关系数据库管理系统(Relational Database Management System)的特色:数据库
MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle公司。MySQL是一种关联数据库管理系统,关联数据库将数据保存在不一样的表中,而不是将全部数据放在一个大仓库内,这样就增长了速度并提升了灵活性。编程
使用如下命令:windows
命令下载mysqlrpm -Uvh http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm
安全
查看有哪些mysql文件yum repolist enabled | grep "mysql.*-community.*"
数据结构
安装mysqlyum install mysql-community-server
tcp
启动mysqlsystemctl start mysqld
编程语言
配置mysqlmysql_secure_installation
没设置过密码直接回车
Set root password?[Y/N]中文意思:是否要设置root用户的密码 选择Y Remove anonymous users? [Y/n]中文意思:是否删除匿名用户 选择N Disallow root login remotely? [Y/n]中文意思:是否禁止root远程登陆 选择N Remove test database and access to it? [Y/n]中文意思:是否删除database数据库 选择N Reload privilege tables now? [Y/n]中文意思:是否从新加载受权信息 选择Y
进入mysqlmysql -uroot -proot
用户名和密码都是root
远程访问设置
#建立一个普通用户sa,密码123 CREATE USER 'sa'@'%' IDENTIFIED BY '123'; 给这个用户授予 SELECT,INSERT,UPDATE,DELETE 的远程访问的权限,这个帐号通常用于提供给实施的系统访问 GRANT SELECT,INSERT,UPDATE,DELETE ON *.* TO 'sa'@'%'; 建立一个管理员用户admin 帐号 ,密码是admin CREATE USER 'admin'@'%' IDENTIFIED BY 'admin'; 给这个用户授予全部的远程访问的权限。这个用户主要用于管理整个数据库、备份、还原等操做。 GRANT ALL ON *.* TO 'admin'@'%'; 使受权马上生效 flush privileges;
设置防火墙
firewall-cmd --permanent --zone=public --add-port=3306/tcp firewall-cmd --permanent --zone=public --add-port=3306/udp firewall-cmd --reload
下载mysql
将 zip 包解压到相应的目录,这里我将解压后的文件夹放在 C:\mysql 下。
打开刚刚解压的文件夹 C:\mysql ,在该文件夹下建立 my.ini 配置文件,编辑 my.ini 配置如下基本信息:
[mysql] # 设置mysql客户端默认字符集 default-character-set=utf8 [mysqld] # 设置3306端口 port = 3306 # 设置mysql的安装目录 basedir=C:\web\mysql-8.0.11 # 设置 mysql数据库的数据的存放目录,MySQL 8+ 不须要如下配置,系统本身生成便可,不然有可能报错 # datadir=C:\web\sqldata # 容许最大链接数 max_connections=20 # 服务端使用的字符集默认为8比特编码的latin1字符集 character-set-server=utf8 # 建立新表时将使用的默认存储引擎 default-storage-engine=INNODB
以管理员身份打开 cmd 命令行工具,切换目录:
cd C:\mysql\bin
初始化mysql
mysqld --initialize --console mysqld --initialize-insecure 执行完成后,会输出 root 用户的初始默认密码 mysqld install net start mysql
第一种:
use mysql; INSERT INTO user (host, user, password, select_priv, insert_priv, update_priv) VALUES ('localhost', 'sa', PASSWORD('123'), 'Y', 'Y', 'Y'); FLUSH PRIVILEGES; 注意:在 MySQL5.7 中 user 表的 password 已换成了authentication_string。 注意:password() 加密函数已经在 8.0.11 中移除了,可使用 MD5() 函数代替。 注意:在注意须要执行 FLUSH PRIVILEGES 语句。 这个命令执行后会从新载入受权表。 你能够在建立用户时,为用户指定权限,在对应的权限列中,在插入语句中设置为 'Y' 便可,用户权限列表以下: Select_priv Insert_priv Update_priv Delete_priv Create_priv Drop_priv Reload_priv Shutdown_priv Process_priv File_priv Grant_priv References_priv Index_priv Alter_priv
第二种:
mysql> use mysql; Database changed mysql> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP -> ON TUTORIALS.* -> TO 'sa'@'localhost' -> IDENTIFIED BY '123';
选择要操做的Mysql数据库 USE 数据库名; 列出 MySQL 数据库管理系统的数据库列表 SHOW DATABASES; 显示指定数据库的全部表 SHOW TABLES; 显示数据表表结构 SHOW COLUMNS FROM 数据表; 显示数据表的详细索引信息,包括PRIMARY KEY(主键) SHOW INDEX FROM 数据表; 输出Mysql数据库管理系统的性能及统计信息 SHOW TABLE STATUS LIKE [FROM db_name] [LIKE 'pattern'] \G;