MySQL安装
1. 处理安装包
将安装包放在/usr/local/src/目录下,并解压,得到原始目录mysql-VERSION-OS
命令:tar -xavf mysql-VERSION-OS.tar.gz
2. 安装目录
在/usr/local/目录下创建符号链接mysql,指向解压后的原始目录mysql-VERSION-OS,方便以后通过/usr/local/mysql引用MySQL
命令:ln -s /usr/local/src/mysql-VERSION-OS mysql
3. 创建用户和组
创建用于运行mysqld的默认用户和默认组,通常为mysql : mysql
命令:
groupadd mysql
useradd -g mysql mysql
4. 初始化数据目录
进入安装目录,即/usr/local/mysql
① 为保证用户mysql能在安装目录下成功创建数据目录,现将安装目录及该目录下的文件和子目录的属主和属组都设置为用户mysql和组mysql
命令:chown -R mysql:mysql .
② 执行scripts子目录下的初始化脚本
命令:scripts/mysql_install_db --user=mysql
这将为MySQL生成数据目录data,它位于安装目录/usr/local/mysql中
③ 现在可以将安装目录的属主更改为root,但数据目录的属主必须为mysql
命令:
chown -R root .
chown -R mysql data
5. 启动服务器
以用户mysql的身份,运行服务器
命令:bin/mysqld_safe --user=mysql &
说明:
◇ 如果启动失败,打印"mysqld ended",请到数据目录(/usr/local/mysql/data)中查看错误日志host_name.err或host_name.log,host_name为本地主机名
◇ mysqld启动后,会将数据目录设置为进程的当前工作目录,服务器将在该目录下查找数据库、写各种日志文件以及PID文件
6. 测试服务器
① 使用mysqladmin,验证服务器运行正常,连接正常
命令:bin/mysqladmin version
② 使用mysqlshow和mysql,验证从服务器获取数据正常
△ 显示数据库
bin/mysqlshow
△ 显示数据库mysql中的表
bin/mysqlshow mysql
△ 从表中获取数据
bin/mysql -e "SELECT User, Host, plugin FROM mysql.user" mysql
7. 账户安全
MySQL的初始用户有两个:root和匿名用户(用户名为空字符串),且两者密码均为空。通过查询mysql库中的user表可以查看用户信息:
另一方面,mysql库中的db表,允许任何用户,从任何主机,访问test库和所有以test_作为前缀的库,且操作权限很大:
因此,现阶段服务器存在三个安全隐患:
① root用户密码为空
② 匿名用户密码为空
③ test库可能被非法访问
◇ 设置root密码
bin/mysql -e "update user set Password = password('some_pass') where User = 'root'; flush privileges;" mysql
注:flush privileges使服务器重新加载权限表,否则修改的密码只有等服务器下次重启才能生效
◇ 设置匿名用户密码
bin/mysql -e "update user set Password = password('some_pass') where User = ''; flush privileges;" mysql
或者可以考虑删除全部匿名账号
bin/mysql -e "delete from user where User = ''; flush privileges;" mysql
◇ 修改db表
删除所有账号对test数据库的访问
bin/mysql -e "delete from db where Db like 'test%'; flush privileges;" mysql
或者可以考虑直接删除test数据库
bin/mysql -e "drop database test" mysql
8. 设置外网访问
当前所有账号的「Host」字段均为「localhost」「127.0.0.1」「::1」,故MySQL只能本地登录
若需外网访问,可新建账号,重设「Host」字段的值:
create user "root"@"%" identified by "some_pass";
grant all privileges on *.* to "root"@"%";
9. 设置PATH
将/usr/local/mysql/bin加入PATH环境变量,方便运行mysql的命令和工具:
在/etc/profile.d/目录下,新建文件mine.sh,内容为:PATH=/usr/local/mysql/bin:$PATH