MySQL安装后的初始优化
mysql数据库在安装之后,有一些内置的库(test库)、用户(如root@localhost.localdomain)是不需要的,而且在Linux系统上,yum安装的mysql是默认无root密码的,这些都给数据库服务器的安全带来了隐患。
这篇文章就是介绍如何进行初始优化,把这些隐患消除掉,以及在root用户被禁止远程登陆的情况下创建普通用户用于局域网管理。
我们的操作环境是64位windows 7系统上面安装的mysql 5.5
关于MySQL数据的安装,可以参考:MySQL安装(Windows 7)
1、删除test库
- C:\Users\Administrator>mysql -uroot -p123456
- mysql> show databases;
- mysql> drop database test;
2、删除不使用的用户
在 Linux 系统上 yum 安装 mysql 时,直接使用 mysql 命令即可连接到 mysql,这是因为 mysql 的内置用户(用户名为空而且也没有密码)导致的。甚至 root 用户也没有密码,即使root用户不能进行远程连接,这也是不安全的。
- mysql> select user, host, password from mysql.user;
- +------+-----------------------+----------+
- | user | host | password |
- +------+-----------------------+----------+
- | root | localhost | |
- | root | localhost.localdomain | |
- | root | 127.0.0.1 | |
- | | localhost | |
- | | localhost.localdomain | |
- +------+-----------------------+----------+
- 5 rows in set (0.00 sec)
首先,把用户名为空的用户删除
- mysql> delete from mysql.user where user = '';
然后,把root@localhost.localdomain用户删除
- mysql> delete from mysql.user where host = 'localhost.localdomain';
然后,为 root 用户设置密码
- mysql> update mysql.user set password = password('');
也可以在命令行使用 mysqladmin 命令设置密码:mysqladmin -u root password '123456'
查看一下
- mysql> select user, host, password from mysql.user;
- +------+-----------+-------------------------------------------+
- | user | host | password |
- +------+-----------+-------------------------------------------+
- | root | localhost | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
- | root | 127.0.0.1 | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
- +------+-----------+-------------------------------------------+
- 2 rows in set (0.00 sec)
最后,刷新一下权限
- mysql> flush privileges;
3、添加局域网管理用户
因为 root 已经被禁止了远程连接,即使是局域网主机,也不能连接。但是我们有需要从远程连接到mysql服务器进行管理。此时可以:
创建用户,允许从局域网主机连接,可以授予所有库、所有表的所有权限,也可以只授予某些库、某些表的某些权限。
我们通常的解决方案是:一个拥有所有权限的管理员用户(用户名密码只能几个核心管理者拥有,甚至可以把host设置在很小的范围内),管理不同库的多个普通用户(不同系统的管理者拥有,彼此尽量无交集)
下面我们看一下创建用户的语法:创建system用户,授予所有库、所有表的所有权限,允许局域网192.168.0网段主机连接,密码是123456
- mysql> GRANT ALL ON *.* TO 'system'@'192.168.0.%' IDENTIFIED BY '';
- mysql> GRANT ALL ON *.* TO 'system'@'localhost' IDENTIFIED BY '';
- mysql> GRANT ALL ON *.* TO 'system'@'127.0.0.1' IDENTIFIED BY '';
- mysql> select user, host, password from mysql.user;
- +--------+--------------+-------------------------------------------+
- | user | host | password |
- +--------+--------------+-------------------------------------------+
- | root | localhost | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
- | root | 127.0.0.1 | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
- | system | 192.168.0.% | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
- | system | localhost | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
- | system | 127.0.0.1 | *6BB4837EB74329105EE4568DDA7DC67ED2CA2AD9 |
- +--------+--------------+-------------------------------------------+
- 5 rows in set (0.00 sec)
- mysql> flush privileges;
从 192.168.0.10 主机进行远程连接
- C:\Users\Administrator>mysql -usystem -p123456 -h 192.168.0.105
可以成功连接了
4、mysql命令主要选项
-?, --help | 显示帮助 |
-D, --database=name | 指定使用的数据库 |
--default-character-set=name |
设置客户端连接编码 mysql -uroot -p123456 --default-character-set=gbk |
-e, --execute=name |
执行语句后退出,这个选项在编写shell脚本时很有用 mysql -uroot -p123456 --default-character-set=gbk -e "select * from test.t_user;" |
-h, --host=name | 连接主机名。默认loadlhost。在连接远程数据库时使用 |
-p, --password[=name] | 密码,如果未指定这个选项,会在mysql命令行提示输入 |
-P, --port=# | 服务端口,默认3306 |
-S, --socket=name | 连接使用的socket文件 |
-u, --user=name | 连接使用的用户 |
-V, --version | 输出版本信息 |
--connect-timeout=# | 连接超时时长,单位为秒 |
你好你好你好你好你好
你好你好你好
5、help命令
MySQL 的官方文档非常全面,即使您没有 MySQL 相关经验,只要有一定的 SQL、DOS/Linux 命令行基础,就可以根据官方文档学习 MySQL 的核心命令和 SQL 语法了。
在 mysql 控制台里面,可以使用 help 来查看帮助,如:查看 create 的帮助可以使用 help create 语句、查看删除表的帮助可以使用 help drop table 语句......
MySQL安装后的初始优化的更多相关文章
- Mysql安装、配置、优化
MYSQL定义 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,属于 Oracle旗下产品.MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最 ...
- [Mysql] 安装后启动不了
Mysql安装后启动报错: ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql ...
- mysql安装后服务启动不了(总结)
mysql安装后服务启动不了 1.1 前言 最近真的是倒霉到家,装个mysql都能把所有的问题给问候了一遍······不过这也是一个宝贵的经验,得好好总结下,毕竟也不知道以后会不会再次遇到.如果有网友 ...
- 关于mysql安装后在客户端cmd插入语句无法执行的问题
关于mysql安装后在客户端cmd插入语句无法执行的问题 因为windows cmd默认字符集是gbk,当character_set_client=utf8时,cmd中出现中文会报错:characte ...
- mysql安装后开启远程
操作系统为centos7 64 1.修改 /etc/my.cnf,在 [mysqld] 小节下添加一行:skip-grant-tables=1 这一行配置让 mysqld 启动时不对密码进行验证 2. ...
- mysql安装后服务启动不了
1.1 前言 最近真的是倒霉到家,装个mysql都能把所有的问题给问候了一遍······不过这也是一个宝贵的经验,得好好总结下,毕竟也不知道以后会不会再次遇到.如果有网友也能像我这样倒霉,但是能够幸运 ...
- 解决mac 下mysql安装后root用户登录密码错误问题
使用的mac OS 10.11 安装mysql后访问root/root用户失败,网上找了一些解决办法,下面记录下解决方法方便以后自己查询 概述(看懂下面就不用看了): 停服务:sudo /usr/l ...
- MySQL安装后默认自带数据库的作用
大家在学习MySQL时,安装后都会发现里边已经自带了几个默认的数据库,我装的MySQL5.5里边自带六个数据库 网上查了一些资料对这几个数据库的功能做一下学习. 1.information_schem ...
- Mysql安装后在服务里找不到和服务启动不起来的解决方法
一,在安装完Mysql数据库后,发现在控制面板->管理->服务中找不到Mysql的服务启动 解决方法如下:开启命令行,按照如下步骤即可: 1.进入到mysql的安装包,在bin里执行:my ...
随机推荐
- nginx reload和reopen
nginx被停止(nginx -s stop)或者直接杀掉了进程(kill -9 nginx的进程号)后,调用命令(nginx -s reload 或者 nginx -s reopen)会报错:无法找 ...
- 第09组 Beta冲刺(4/4)
队名:软工9组 组长博客:https://www.cnblogs.com/cmlei/ 作业博客:https://edu.cnblogs.com/campus/fzu/SoftwareEngineer ...
- Research Guide for Video Frame Interpolation with Deep Learning
Research Guide for Video Frame Interpolation with Deep Learning This blog is from: https://heartbeat ...
- 爬虫的正则表达式re模块
爬虫一共就四个主要步骤: 明确目标 (要知道你准备在哪个范围或者网站去搜索) 爬 (将所有的网站的内容全部爬下来) 取 (去掉对我们没用处的数据) 处理数据(按照我们想要的方式存储和使用) 对于dow ...
- Mac删除自带的abc输入法
1. 安装软件:https://pan.baidu.com/s/15oIzTDojpignoR5MiZ-Q1A 安装并注册 2. 进入到目录,并打开: 1. /Users/toov5/Library/ ...
- Python十大装B语法
https://blog.csdn.net/xufive/article/details/102856921
- sigaction和实时信号sigqueue
sigaction函数sigaction函数的功能是用于改变进程接收到特定信号后的行为.int sigaction(int signum, const struct sigaction *act,st ...
- [LeetCode] 165. Compare Version Numbers 比较版本数
Compare two version numbers version1 and version1.If version1 > version2 return 1, if version1 &l ...
- [LeetCode] 219. Contains Duplicate II 包含重复元素 II
Given an array of integers and an integer k, find out whether there are two distinct indices i and j ...
- linux中安装cx_Oracle
https://blog.csdn.net/w657395940/article/details/41144225 各种尝试都,最后 pip install cx-Oracle 成功导入