这里说个题外话,前天由于大暴雨,我家突然停电。第二天我开机,使用Xshell连接不上虚拟机了,虚拟机采用桥接模式连接网络,设置了静态ip。这让我非常苦恼,求教了很多人,但没有得到正确的解决方案。最后,死马当活马医,我去查了一下真实机的ip,发现已经不是之前的那个网段了(真实机设置的是动态ip),所以才导致真实机连不上虚拟机。最后我把真实机也设成静态ip了,防止再出现同样问题!荒废了一天的时间,就在琢磨这个简单的问题,我也很崩溃啊!!!
1. 简介
MySQL是一个关系型数据库管理系统,由瑞典MySql AB公司开发,目前属于Oracle旗下产品。
2. 特点
MySQL所使用的SQL语言是用于访问数据库的最常用标准化语言,MySQL软件采用了双授权政策,分为社区版和商业版,由于其体积小,速度快,总体拥有成本低,尤其开放源码这一特点,一般中小型网站的开发都选择MySql作为网站服务器。
2. 安装
- 安装命令
yum -y install mysql-server
注:rpm -qa| grep mysql-server 可通过此行命令检查是否已安装mysql-server
- 字符集配置(默认配置文件:/etc/my.cnf)
- vim /etc/my.cnf
- 添加配置,在[mysqld]节点下添加:
default-character-set=utf8
character-set-server=utf8
- 【:wq】保存退出
补充:关于中文乱码问题
1. 在5.1版本时,为了解决中文乱码问题,在my.ini内[mysql]和[mysqld]中都写:
default-character-set=utf8
2. 在5.5版本,[mysql]内可以这么写,[mysqld]内不能再这么写了,而是写:
character-set-server=utf8
3. 自启动配置
- 执行:chkconfig mysqld on
- 执行:chkconfig --list mysqld 查看(2-5位启用on状态即ok)
4. 防火墙配置
- vim /etc/sysconfig/iptables
- 插入: -A INPUT -m --state NEW -m tcp --dport 3306 -j ACCEPT
- 【:wq】保存退出
- 执行:service iptables restart
5. msql服务启动
- service mysql start 或者:/etc/rc.d/init.d/mysqld start
6. mysql初始化环境配置
因为还未设置密码,执行mysql -u root 登录Mysql服务器。
7. mysql配置
- 查看目前mysql的用户
select user,host,password from mysql.user;
- 修改root密码
set password for root@localhost=password('密码');
set password for root@127.0.0.1=password('密码');
注:password('密码')是一个内置函数
- exit退出mysql
- 重新登录mysql:mysql -u root -p 回车,输入密码,登录成功
- 删除匿名用户
- 查看是否有匿名用户:select user,host from mysql.user;
- 删除匿名用户:delete from mysql.user where user='';
- 再次查看:select user,host from mysql.user;
- 执行:flush privileges; 当前user和privilige表中的用户信息/权限设置从mysql库(MySQL数据库的内置库)中提取到内存里。
- 插入mysql新用户:insert into mysql.user(host,user,password) values('localhost','用户名',password('密码'));
- 执行:flush privileges; 当前user和privilige表中的用户信息/权限设置从mysql库(MySQL数据库的内置库)中提取到内存里。
- 创建新的database
CREATE DATABASE 数据库名称 DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
- 本地用户赋予所有权限
grant all privileges on 数据库名.* to '用户名'@localhost identified by '密码';
- 给账号开通外网所有权限
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;
- 执行:flush privileges; 当前user和privilige表中的用户信息/权限设置从mysql库(MySQL数据库的内置库)中提取到内存里。
8. mysql验证
- Linux:执行ifconfig 查看运行mysql服务器的地址。
9. mysql常用命令
- 启动:service mysqld start
- 关闭:service mysqld stop
- 重启:service mysqld restart
10. mysql查看所有用户的权限
select * from msql.user \G
11. 使用workbench登录虚拟机的mysql数据库
- 首先在linux端的mysql中给用户授权:
grant all privileges on *.* to 'root'@'%' identified by 'root' with grant option;
给root用户授予所有权限,通过密码‘root’登录并且此账户可以给其他用户授予权限。
- 执行:flush privileges;
-
在真实机打开workbench,添加新连接:
image.png -
可以后,填入Connection Name,点击ok。
image.png
可能的错误:
Access denied for user 'root'@'localhost'
文章参考:
mysql 用户管理和权限设置
MySQL中授权(grant)和撤销授权(revoke)
知识扩展:
DQL、DML、DDL、DCL的概念与区别
网友评论