LANMP 搭建--MySQL、远程登陆设置
二进制包安装
1、官网下载:https://dev.mysql.com/downloads/mysql/5.7.html#downloads
2、卸载系统自带的Mariadb(可卸,亦或者不卸载都可以,建议卸载)
[root@192 ~]# rpm -qa | grep mariadb #查看是否安装有Mariadb
[root@192 ~]# yum remove mariadb-libs-5.5.68-1.el7.x86_64 #卸载,完成后检查是否删除干净,若还存在,可用 rm -rf
3、编译环境所需的依赖包
yum -y install lrzsz #安装rz -y上传命令
yum install -y ncurses-devel libaio-devel autoconf cmake gcc gcc-c++ glibc #安装依赖包
编译MySQL(注:某版本后,5.7版本的安装与配置如下)
1、解压
[root@192 ~]# tar zxvf mysql-5.7.32-linux-glibc2.12-x86_64.tar.gz
2、把解压后的文件移动到指定路径
[root@192 ~]# mv mysql-5.7.32-linux-glibc2.12-x86_64 /usr/local/ #移动到指定目录
[root@192 local]# ln -s mysql-5.7.32-linux-glibc2.12-x86_64 mysql #创建软链接,且命名为mysql
3、创建data,(重点:因某个版本后mysql目录里没有了data文件夹)
[root@192 mysql]# mkdir /usr/local/mysql/data #创建data文件夹(如存在data,必须删除了再创建)
4、创建用户和用户组
[root@192 local]# groupadd mysql
[root@192 local]# useradd -r -g mysql mysql
5、修改mysql目录的权限(重要:不授权会出各种问题 em...)
[root@192 ~]# chown -R mysql:mysql /usr/local/mysql/
[root@192 ~]# chmod -R 755 /usr/local/mysql/
6、查看是否有my.cnf文件,有就删除掉 rm -rf my.cnf(重要:不删除安装会报Error,会出现各种PID或者sock问题)
[root@192 ~]# find / -name my.cnf #查询my.cnf
7、初始化(--initialize-insecure #不生成随机密码)
(注:最后一行@localhost:9beo.8H(4Joo 生成的随机密码用来第一次登录)
[root@192 bin]# ./mysqld --initialize --user=mysql --datadir=/usr/local/mysql/data --basedir=/usr/local/mysql #初始化
8、把启动脚本放到开机初始化目录
[root@192 mysql]# cp support-files/mysql.server /etc/init.d/mysqld
9、增加脚本执行权限
[root@192 mysql]# chmod +x /etc/init.d/mysqld #执行权限
[root@192 mysql]# chkconfig --add mysqld #mysqld 加入到系统服务
[root@192 mysql]# chkconfig --list mysqld #检查 mysqld服务
10、启动mysqld服务
[root@192 ~]# ln -s /usr/local/mysql/bin/mysql /usr/bin #创建mysql脚本软连接
[root@192 ~]# service mysqld start
11、登录(mysql的启动脚本在../mysql/bin/mysql)
[root@192 ]# mysql -u root -p
Enter password: #输入之前生成的随机密码
12、登录后必须修改初始密码
mysql> set password=password('******'); #修改为新的密码
13、 退出mysql后重启,新密码生效
[root@192 ~]# service mysqld restart #重启mysqld服务,用新密码登录
14、启用mysql安全功能 (cd../mysql/bin)
在服务器与各户机之间来回传输的所以数据进行加密。
./mysql_ssl_rsa_setup --datadir=/usr/local/mysql/data #加密命令
三、远程登录数据库
1、登录mysql,创建新用户
mysql> CREATE USER 'test01'@'%' IDENTIFIED BY 'test123'; #创建一个 test01 的用户 --> % 表示任何IP都可以登录 --> 密码为 test123
2、授权
mysql> GRANT ALL PRIVILEGES ON *.* TO 'test01'@'%' IDENTIFIED BY 'test123' WITH GRANT OPTION;
mysql> flush privileges; #重载
mysql> exit; #退出重启mysqld服务.OK!
注释:
GRANT --------------------------------- 赋权命令
ALL PRIVILEGES ------------------- 当前用户的所有权限
ON --------------------------------------- 介词
*.* ----------------------------------------- 当前用户对所有数据库和表的相应操作权限
TO ---------------------------------------- 介词
‘test01’ @ ’%’ ------------------------ 权限赋给test01用户,所有ip都能连接
IDENTIFIED BY ‘test123’ ---------- 连接时输入密码,密码为test123
WITH GRANT OPTION ------------- 允许级联赋权
创建组和用户——参数说明:
-c:加上备注文字,备注文字保存在passwd的备注栏中。
-d:指定用户登入时的起始目录。
-D:变更预设值。
-e:指定账号的有效期限,缺省表示永久有效。
-f:指定在密码过期后多少天即关闭该账号。
-g:指定用户所属的起始群组。
-G:指定用户所属的附加群组。
-m:自动建立用户的登入目录。
-M:不要自动建立用户的登入目录。
-n:取消建立以用户名称为名的群组。
-r:建立系统账号。
-s:指定用户登入后所使用的shell。
-u:指定用户ID号。