Linux 安装 部署MySQL5.7 跟权限管理
发布时间:2023-09-20 16:16:11 所属栏目:MySql教程 来源:
导读: 安装包 ====> https://download.csdn.net/download/qq_31821675/12705374
解压
tar -xvf mysql-5.7.26-linux-glibc2.12-x86_64.tar
再移动并重命名一下
mv mysql-5.7.26-linux-g
解压
tar -xvf mysql-5.7.26-linux-glibc2.12-x86_64.tar
再移动并重命名一下
mv mysql-5.7.26-linux-g
安装包 ====> https://download.csdn.net/download/qq_31821675/12705374 解压 tar -xvf mysql-5.7.26-linux-glibc2.12-x86_64.tar 再移动并重命名一下 mv mysql-5.7.26-linux-glibc2.12-x86_64 /usr/local/mysql 创建 mysql 用户组和用户并修改权限 groupadd mysql useradd -r -g mysql mysql 创建数据目录并赋予权限 mkdir -p /data/mysql #创建目录 chown mysql:mysql -R /data/mysql #赋予权限 配置 my.cnf vim /etc/my.cnf 内容如下 [mysqld] bind-address=0.0.0.0 port=3306 user=mysql #log_bin #开启binlog log-bin = mysql-bin #选择row模式 binlog-format = ROW server_id = 12345 basedir=/usr/local/mysql datadir=/data/mysql socket=/tmp/mysql.sock log-error=/data/mysql/mysql.err pid-file=/data/mysql/mysql.pid #character config character_set_server=utf8mb4 symbolic-links=0 explicit_defaults_for_timestamp=true 初始化数据库 进入 mysql 的 bin 目录 cd /usr/local/mysql/bin/ 初始化 ./mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql/ --datadir=/data/mysql/ --user=mysql --initialize 查看密码 cat /data/mysql/mysql.err 启动 mysql,并更改 root 密码 先将 mysql.server 放置到 /etc/init.d/mysql 中 cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql 启动!!! service mysql start ps -ef|grep mysql 到这里说明 mysql 已经安装成功了!! 下面修改密码 首先登录 mysql,前面的那个是随机生成的。 ./mysql -u root -p #bin目录下 再执行下面三步操作,然后重新登录。 SET PASSWORD = PASSWORD('123456'); ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER; FLUSH PRIVILEGES; 这时候你如果使用远程连接…… 你会发现你无法连接。 这里主要执行下面三个命令 (先登录数据库) use mysql #访问mysql库 update user set host = '%' where user = 'root'; #使root能再任何host访问 FLUSH PRIVILEGES; #刷新 ok!!!!MySQL5.7 就装好了…… 坑是真的多…… 但是如果按这个流程走应该是能顺利装下来的。(因为我装了两遍……) 如果不希望每次都到 bin 目录下使用 mysql 命令则执行以下命令 ln -s /usr/local/mysql/bin/mysql /usr/bin MySQL 创建用户 CREATE USER 'username'@'host' IDENTIFIED BY 'password'; username – 你将创建的用户名说明: host – 指定该用户在哪个主机上可以登陆,如果是本地用户可用 localhost, 如 果想让该用户可以从任意远程主机登陆,可以使用通配符 % password – 该用户的登陆密码,密码可以为空,如果为空则该用户可以不需要密码登 陆服务器 例子: CREATE USER 'javacui'@'localhost' IDENTIFIED BY '123456'; CREATE USER 'javacui'@'172.20.0.0/255.255.0.0' IDENDIFIED BY '123456'; CREATE USER 'javacui'@'%' IDENTIFIED BY '123456'; CREATE USER 'javacui'@'%' IDENTIFIED BY ''; CREATE USER 'javacui'@'%'; 授权 GRANT privileges ON databasename.tablename TO 'username'@'host'; privileges – 用户的操作权限,如 SELECT , INSERT , UPDATE 等 (详细列表见该文最后面). 如果要授予所 的权限则使用 ALL 说明: databasename – 数据库名 tablename - 表名,如果要授予该用户对所有数据库和表的相应操作权限则可用 * 表示,如 *.* 例子: GRANT SELECT, INSERT ON test.user TO 'javacui'@'%'; GRANT ALL ON *.* TO 'javacui'@'%'; 注意:用以上命令授权的用户不能给其它用户授权,如果想让该用户可以授权,用以下命令 GRANT privileges ON databasename.tablename TO 'username'@'host' WITH GRANT OPTION; 设置与更改用户密码 SET PASSWORD FOR 'username'@'host' = PASSWORD('newpassword'); 如果是当前登陆用户用 SET PASSWORD = PASSWORD("newpassword"); 撤销用户权限 REVOKE privilege ON databasename.tablename FROM 'username'@'host'; 例子说明: privilege, databasename, tablename – 同授权部分 REVOKE SELECT ON *.* FROM 'javacui'@'%'; 假如你在给用户’javacui’@'%’授权的时候是这样的 (或类似 的):GRANT SELECT ON test.user TO ‘javacui’@'%’, 则在使用 REVOKE SELECT ON *.* FROM ‘javacui’@'%’; 命令并不能撤销该用户对 test 数据库中 user 表的 SELECT 操作注意: 相反,如果授权使用的是 GRANT SELECT ON *.* TO ‘javacui’@'%’; 则 REVOKE SELECT ON test.user FROM ‘javacui’@'%’; 命令也不能撤销该用户对 test 数据库中 user 表的 Select 权限 具体信息可以用命令 SHOW GRANTS FOR ‘javacui’@'%’; 查看 删除用户 DROP USER ‘username’@'host’; 操作后切记刷新数据库 flush privileges; (编辑:聊城站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
推荐文章
站长推荐