Mysql数据库简介及安装(Linux)

这里说个题外话,前天由于大暴雨,我家突然停电。第二天我开机,使用Xshell连接不上虚拟机了,虚拟机采用桥接模式连接网络,设置了静态ip。这让我非常苦恼,求教了很多人,但没有得到正确的解决方案。最后,死马当活马医,我去查了一下真实机的ip,发现已经不是之前的那个网段了(真实机设置的是动态ip),所以才导致真实机连不上虚拟机。最后我把真实机也设成静态ip了,防止再出现同样问题!荒废了一天的时间,就在琢磨这个简单的问题,我也很崩溃啊!!!

1. 简介
MySQL是一个关系型数据库管理系统,由瑞典MySql AB公司开发,目前属于Oracle旗下产品。

2. 特点
MySQL所使用的SQL语言是用于访问数据库的最常用标准化语言,MySQL软件采用了双授权政策,分为社区版和商业版,由于其体积小,速度快,总体拥有成本低,尤其开放源码这一特点,一般中小型网站的开发都选择MySql作为网站服务器。

2. 安装

  1. 安装命令
yum -y install mysql-server
注:rpm -qa| grep mysql-server  可通过此行命令检查是否已安装mysql-server
  1. 字符集配置(默认配置文件:/etc/my.cnf)
  2. vim /etc/my.cnf
  3. 添加配置,在[mysqld]节点下添加:
default-character-set=utf8
character-set-server=utf8
  1. 【:wq】保存退出

补充:关于中文乱码问题
1. 在5.1版本时,为了解决中文乱码问题,在my.ini内[mysql]和[mysqld]中都写:

default-character-set=utf8
2. 在5.5版本,[mysql]内可以这么写,[mysqld]内不能再这么写了,而是写:
character-set-server=utf8

3. 自启动配置

  1. 执行:chkconfig mysqld on
  2. 执行:chkconfig --list mysqld 查看(2-5位启用on状态即ok)

4. 防火墙配置

  1. vim /etc/sysconfig/iptables
  2. 插入: -A INPUT -m --state NEW -m tcp --dport 3306 -j ACCEPT
  3. 【:wq】保存退出
  4. 执行:service iptables restart

5. msql服务启动

  1. service mysql start 或者:/etc/rc.d/init.d/mysqld start

6. mysql初始化环境配置
因为还未设置密码,执行mysql -u root 登录Mysql服务器。

7. mysql配置

  1. 查看目前mysql的用户
select user,host,password from mysql.user;
  1. 修改root密码
set password for root@localhost=password('密码');
set password for [email protected]=password('密码');
注:password('密码')是一个内置函数
  1. exit退出mysql
  2. 重新登录mysql:mysql -u root -p 回车,输入密码,登录成功
  3. 删除匿名用户
  4. 查看是否有匿名用户:select user,host from mysql.user;
  5. 删除匿名用户:delete from mysql.user where user='';
  6. 再次查看:select user,host from mysql.user;
  7. 执行:flush privileges; 当前user和privilige表中的用户信息/权限设置从mysql库(MySQL数据库的内置库)中提取到内存里。
  8. 插入mysql新用户:insert into mysql.user(host,user,password) values('localhost','用户名',password('密码'));
  9. 执行:flush privileges; 当前user和privilige表中的用户信息/权限设置从mysql库(MySQL数据库的内置库)中提取到内存里。
  10. 创建新的database
CREATE DATABASE 数据库名称 DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
  1. 本地用户赋予所有权限
grant all privileges on 数据库名.* to '用户名'@localhost identified by '密码';
  1. 给账号开通外网所有权限
grant all privileges on 数据库名.* to '用户名'@‘%’ identified by '密码';
grant 权限 on 数据库对象 to 用户 identified by "密码"

例如:

grant select ,insert,update on mmall.* to 'root'@'192.168.1.5' identified by 'password'; 给
或者
grant all privileges on *.* to 'root'@'%' identified by 'root' with grant option;
  1. 执行:flush privileges; 当前user和privilige表中的用户信息/权限设置从mysql库(MySQL数据库的内置库)中提取到内存里。

8. mysql验证

  1. Linux:执行ifconfig 查看运行mysql服务器的地址。

9. mysql常用命令

  1. 启动:service mysqld start
  2. 关闭:service mysqld stop
  3. 重启:service mysqld restart

10. mysql查看所有用户的权限

select * from msql.user \G

11. 使用workbench登录虚拟机的mysql数据库

  1. 首先在linux端的mysql中给用户授权:
grant all privileges on *.* to 'root'@'%' identified by 'root' with grant option;
给root用户授予所有权限,通过密码‘root’登录并且此账户可以给其他用户授予权限。
  1. 执行:flush privileges;
  2. 在真实机打开workbench,添加新连接:


    Mysql数据库简介及安装(Linux)_第1张图片
    image.png
  3. 可以后,填入Connection Name,点击ok。


    Mysql数据库简介及安装(Linux)_第2张图片
    image.png

可能的错误:
Access denied for user 'root'@'localhost'
文章参考:
mysql 用户管理和权限设置
MySQL中授权(grant)和撤销授权(revoke)
知识扩展:
DQL、DML、DDL、DCL的概念与区别

你可能感兴趣的:(Mysql数据库简介及安装(Linux))