我在Linux中编译安装了一个MYSQL,使用root可以连接,但是不能建立其他用户。
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了我在Linux中编译安装了一个MYSQL,使用root可以连接,但是不能建立其他用户。相关的知识,希望对你有一定的参考价值。
我可以使用root的账户连接我的mysql(/usr/loacl/mysql/bin/mysql -u root -p)然后使用create database test; --建立数据库,后使用grant select,insert,update,delete on *.* to test@"%" Identified by "1q2w3e4r"; --建立test用户,提示成功后,我\q退出MYSQL后使用test用户连接提示如下,请帮忙看一下,谢谢
[root@station11 bin]# mysql test -u test -p
Enter password:
ERROR 1045 (28000): Access denied for user 'test'@'localhost' (using password: YES)
[root@station11 bin]# mysql test -h localhost -u test -p
Enter password:
ERROR 1045 (28000): Access denied for user 'test'@'localhost' (using password: YES)
还是不行~^^^
其中本机IP不能是127.0.0.1
本机IP也不能是localhost,mysql应该在什么位置限定了本机非root登录,我没找到过
假设你的IP是1.2.3.4,应当输入mysql test -h 1.2.3.4 -u test -p
如果没有公网IP,192.168.y.x,10.x.y.z这样的内网IP也可以
localhost和127.0.0.1都是"不"行的 参考技术A 执行这个看看GRANT ALL PRIVILEGES on *.* to test@"%" Identified by "1q2w3e4r" 参考技术B 应该是没有授权吧成功吧!
grant all on test.* to test@localhost identified by "1q2w3e4r"; 参考技术C 理论上应该可以,但需要修改很多设置,因为本身系统的设计和软件的设计都是用 root 来把它安装到特定的位置来运行。
其实安装软件按安全设计原则,应该只能由 root 来安装,其他用户只能用装好的程序,自己不能安装新的软件。
其实现在 Linux 下面的安全,并不是必须非 root 安装才安全的,需要的是非 root 运行程序,也就是你安装好后,运行 mysql 这个服务器程序的用户是一个特殊设置的没有太多权限的用户就可以很好的保证系统的安全。
如果你非 root 安装,那么这个软件很有可能特殊限制权限的用户会不能运行这个程序,变相的,可能需要有一定权限的用户来执行,这个用户的安全有可能影响到整个 mysql 数据的安全。
Linux 上使用二进制(预编译)文件安装 MySQL
安装配置
# 安装MySQL依赖的libaio库
shell> yum search libaio # search for info
shell> yum install libaio # install library
# 安装MySQL依赖的libaio库
shell> yum search libnuma # search for info
shell> yum install libnuma # install library
编写安装脚本
vim mysql.sh
#!/bin/bash
# 创建用户组
groupadd mysql
# 创建用户,禁止登陆
useradd -r -g mysql -s /bin/false mysql
cd /usr/local
# 解压缩
tar -zxvf mysql-VERSION-OS.tar.gz
# 重命名
mv mysql-VERSION-OS mysql
cd mysql
# 创建数据目录
mkdir mysql-files
# 设置用户和组
chown mysql:mysql mysql-files
# 设置权限
chmod 750 mysql-files
yum remove mariadb-libs -y
# 使用服务器初始化数据目录,生成随机初始的`root`密码,并标记为已过期,初始密码写入标准错误输出
bin/mysqld --initialize --user=mysql
# 服务器支持安全连接
bin/mysql_ssl_rsa_setup
# 启动MySQL
bin/mysqld_safe --user=mysql &
cp support-files/mysql.server /etc/init.d/mysql.server
# 将mysql/bin加入环境变量
echo \'export PATH=$PATH:/usr/local/mysql/bin\' >> /etc/profile
source /etc/profile
运行安装脚本
source mysql.sh
......
[Warning] A temporary password is generated for root@localhost:
iTag*AfrH5ej
配置及测试
shell> mysql_secure_installation
shell> mysql -u root -p
shell> mysql -h 127.0.0.1 -P 3306 -u root -p
参考:https://dev.mysql.com/doc/ref...
MySQL 目录结构
/usr/local/mysql
目录 | 内容 |
---|---|
bin | mysqld 服务端、客户端和二进制文件 |
docs | MySQL 手册 |
man | Unix 手册 |
include | 头文件 |
lib | 类库 |
share | 错误消息,字典和用于数据库安装的SQL |
support-files | 杂项支持文件 |
/etc/my.cnf | 配置文件 |
/etc/mysql/my.cnf | 配置文件 |
其他安装方式
在Microsoft Windows上安装MySQL
使用MySQL Yum存储库在Linux上安装MySQL
使用Oracle的RPM软件包在Linux上安装MySQL
使用Docker在Linux上部署MySQL
从本地软件存储库在Linux上安装MySQL
从源代码安装MySQL
以上是关于我在Linux中编译安装了一个MYSQL,使用root可以连接,但是不能建立其他用户。的主要内容,如果未能解决你的问题,请参考以下文章