千家信息网

在Linux下给mysql创建用户并分配权限等问题

发表于:2025-01-20 作者:千家信息网编辑
千家信息网最后更新 2025年01月20日,在linux系统中安装mysql的步骤工具:mysql-5.6.17-linux-glibc2.5-i686.tar.gzmysql-5.6.17-linux-glibc2.5-x86_64.tar.
千家信息网最后更新 2025年01月20日在Linux下给mysql创建用户并分配权限等问题


在linux系统中安装mysql的步骤


工具:

mysql-5.6.17-linux-glibc2.5-i686.tar.gz

mysql-5.6.17-linux-glibc2.5-x86_64.tar.gz

linux系统64位

方法/步骤

1、到mysql官网下载mysql编译好的二进制安装包.

2、解压安装包:

3、进入安装包所在目录,执行命令:tar -zxvf mysql-5.6.17-linux-glibc2.5-i686.tar.gz

4、复制解压后的mysql目录到系统的本地软件目录:

执行命令:cp mysql-5.6.17-linux-glibc2.5-i686 /usr/local/mysql -r

注意:目录结尾不要加/

5、添加系统mysql组和mysql用户:

执行命令:groupadd mysql和useradd -r -g mysql mysql

6、安装数据库:

7、进入安装mysql软件目录:执行命令 cd /usr/local/mysql

8、修改当前目录拥有者为mysql用户:执行命令 chown -R mysql:mysql ./

9、安装数据库:执行命令 ./scripts/mysql_install_db --user=mysql

10、修改当前目录拥有者为root用户:执行命令 chown -R root:root ./

11、修改当前data目录拥有者为mysql用户:执行命令 chown -R mysql:mysql data

到此数据库安装完毕

1、启动mysql服务和添加开机启动mysql服务:

添加开机启动:执行命令cp support-files/mysql.server /etc/init.d/mysql,把启动脚本放到开机 初始化目录

2、启动mysql服务:执行命令service mysql start

执行命令:ps -ef|grep mysql 看到mysql服务说明启动成功

3、修改mysql的root用户密码,root初始密码为空的:

执行命令:./bin/mysqladmin -u root password '密码'

4、把mysql客户端放到默认路径:

ln -s /usr/local/mysql/bin/mysql /usr/local/bin/mysql

注意:建议使用软链过去,不要直接包文件复制,便于系统安装多个版本的mysql


在Linux下给mysql创建用户并分配权限

1.新建用户

  //登录MYSQL

  @>mysql -u root -p

  @>密码

  //创建用户

  mysql> insert into mysql.user(Host,User,Password) values('localhost','Tome',password('Tome'));

  //刷新系统权限表

  mysql>flush privileges;

  这样就创建了一个名为:Tome 密码为:Tome 的用户。

  //退出后登录一下

  mysql>exit;

  @>mysql -u Tome -p

  @>输入密码

  mysql>登录成功


2.为用户授权

  //登录MYSQL(有ROOT权限)。我里我以ROOT身份登录。

  @>mysql -u root -p

  @>密码

  //首先为用户创建一个数据库(TomeDB)

  mysql>create database TomeDB;

  //授权jeecn用户拥有Tome数据库的所有权限

  @>grant all privileges on TomeDB.* to Tome@localhost identified by 'Tome';

  //刷新系统权限表

  mysql>flush privileges;

  mysql>其它操作

  //如果想指定部分权限给一用户,可以这样来写:

  mysql>grant select,update on TomeDB.* to Tome@localhost identified by 'Tome';

  //刷新系统权限表。

  mysql>flush privileges;

  mysql> grant 权限1,权限2,…权限n on 数据库名称。表名称 to 用户名@用户地址 identified by '连接口令';

  权限1,权限2,…权限n代表select,insert,update,delete,create,drop,index,alter,grant,references,reload,shutdown,process,file等14个权限。

  当权限1,权限2,…权限n被all privileges或者all代替,表示赋予用户全部权限。

  当数据库名称。表名称被*.*代替,表示赋予用户操作服务器上所有数据库所有表的权限。

  用户地址可以是localhost,也可以是ip地址、机器名字、域名。也可以用'%'表示从任何地址连接。

  '连接口令'不能为空,否则创建失败。

  例如:

  mysql>grant select,insert,update,delete,create,drop on vtdc.employee to ee@10.25.197.95 identified by '123′;

  给来自10.25.197.95的用户 ee 分配可对数据库vtdc的employee表进行select,insert,update,delete,create,drop等操作的权限,并设定口令为123。

  mysql>grant all privileges on vtdc.* to jee@10.25.197.95 identified by '123′;

  给来自10.25.197.95的用户 ee 分配可对数据库vtdc所有表进行所有操作的权限,并设定口令为123。

  mysql>grant all privileges on *.* to ee@10.25.197.95 identified by '123′;

  给来自10.25.197.95的用户 ee分配可对所有数据库的所有表进行所有操作的权限,并设定口令为123。

  mysql>grant all privileges on *.* to ee@localhost identified by '123′;

  给本机用户 ee分配可对所有数据库的所有表进行所有操作的权限,并设定口令为123。


3.删除用户

  @>mysql -u root -p

  @>密码

  mysql>DELETE FROM mysql.user WHERE User="Tome"

  mysql>flush privileges;

  //删除用户的数据库

  mysql>drop database TomeDB;


4.修改指定用户密码

  @>mysql -u root -p

  @>密码

  mysql>update mysql.user set password=password('新密码') where User="Tome" and Host="localhost";

  mysql>flush privileges;

  mysql>quit;


5.如果使用root无法连接本地库的话:

提示:1045 access denied for user 'root'@'localhost' using password yes

方法一:

# /etc/init.d/mysql stop

# mysqld_safe --user=mysql --skip-grant-tables --skip-networking &

# mysql -u root mysql

mysql> UPDATE user SET Password=PASSWORD('newpassword') where USER='root';

mysql> FLUSH PRIVILEGES;

mysql> quit

# /etc/init.d/mysql restart

# mysql -uroot -p

Enter password: <输入新设的密码newpassword>

mysql>


方法二:

直接使用/etc/mysql/debian.cnf文件中[client]节提供的用户名和密码:

# mysql -udebian-sys-maint -p

Enter password: <输入[client]节的密码>

mysql> UPDATE mysql.user SET Password=PASSWORD('newpassword') where USER='root';

mysql> FLUSH PRIVILEGES;

mysql> quit

# mysql -uroot -p

Enter password: <输入新设的密码newpassword>

mysql>


0