首先通过 xshell 或者 MobaXterm 远程进入Linux 命令行操作界面。
1.MobaXterm的安装
https://developmenttools.oss-cn-hangzhou.aliyuncs.com/workTools/MobaXterm.rar?Expires=1677466928&OSSAccessKeyId=TMP.3Kfdzi7RM3KwaaMa1wyFNGmUvqf5zYxAq9DgjtJfwacnxNQuWWNe5ejCfjnkqxufAYuF79WXpcmYA1vyuuLg8DjgMtUS9k&Signature=EqBQJ2EY88dTPwY%2ByvRp20Wo8ew%3D
【1】查看是否已经安装 Mysql
rpm -qa | grep mysql
下面是我的操作
如果你查看出来有东西,可以使用下面命令将其删除(xxx 为文件全名),如果没有安装 Mysql,那么直接进入【2】
rpm -e xxx
2.下载 Mysql 包
2. 1下载官方mysql ,选择对应的包 如下5.7包
https://downloads.mysql.com/archives/community/
或者使用我提供的链接:
链接:https://pan.baidu.com/s/1YLE3X1JE6_JHnL0IsA4MRA
提取码:5ydb
2. 1上传解压(解压后可删除安装包,节省空间)
tar -zxvf mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz
2. 3直接使用wget下载mysql包
先查看是否有wget命令
rpm -qa|grep "wget"
如果没有则直接安装
yum install -y wget
安装完成wget后,开始下载mysql包
sudo wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz
解压完成后把mysql-5.7.24-linux-glibc2.12-x86_64移动到/usr/local下面,并且改名为mysql
mv mysql-5.7.24-linux-glibc2.12-x86_64 /usr/local/
cd /usr/local
mv mysql-5.7.24-linux-glibc2.12-x86_64 mysql
3.在/usr/local/mysql目录下创建data目录
mkdir /usr/local/mysql/data
4. 先检查是否有mysql用户组和mysql用户,没有就添加有就忽略:
groups mysql
创建mysql用户组和用户并修改权限
groupadd mysql && useradd -r -g mysql mysql
更改mysql目录下所有的目录及文件夹所属的用户组和用户,以及权限
chown -R mysql:mysql /usr/local/mysql
chmod -R 755 /usr/local/mysql
5. 编译安装并初始化mysql,务必记住初始化输出日志末尾的密码(数据库管理员临时密码)
cd /usr/local/mysql/bin/
./mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql/ --datadir=/data/mysql/ --user=mysql --initialize
需要记住这个密码,后面需要对密码进行重置
6.修改配置文件 vim /etc/my.cnf (没有就新建)
[mysqld]
datadir=/usr/local/mysql/data
port=3306
socket = /var/lib/mysql/mysql.sock
sql_mode=NO_AUTO_CREATE_USER,NO_AUTO_VALUE_ON_ZERO,NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,NO_ZERO_DATE,NO_ZERO_IN_DATE,ERROR_FOR_DIVISION_BY_ZERO
symbolic-links=0
max_connections=600
innodb_file_per_table=1
lower_case_table_names=1
character_set_server=utf8
explicit_defaults_for_timestamp=true
[mysqld_safe]
log-error=/usr/local/mysql/log/mariadb.log
pid-file=/usr/local/mysql/log/mariadb.pid
mysqld_safe是服务端工具,用于启动mysqld,它是mysqld的守护进程
参数解释:
lower_case_table_names:是否区分大小写,1表示存储时表名为小写,操作时不区分大小写;0表示区分大小写;不能动态设置,修改后,必须重启才能生效
character_set_server:设置数据库默认字符集,如果不设置默认为latin1
innodb_file_per_table:是否将每个表的数据单独存储,1表示单独存储;0表示关闭独立表空间,可以通过查看数据目录,查看文件结构的区别
log-error:进程错误日志
pid-file:启动mysql后生成的进程id
7.启动mysql
/usr/local/mysql/support-files/mysql.server start
若报错:
Starting MySQL.2023-02-27T06:16:50.294644Z mysqld_safe error: log-error set to '/usr/local/mysql/log/mariadb.log', however file don't exists. Create writable for user 'mysql'.
ERROR! The server quit without updating PID file (/usr/local/mysql/data/localhost.localdomain.pid).
检查发现整体my.cnf的配置没有什么问题,然后一直启动失败,最后发现是mysqld_safe 配置的日志目录并没有创建
[mysqld_safe]
log-error=/usr/local/mysql/log/mariadb.log
pid-file=/usr/local/mysql/log/mariadb.pid
所以直接创建授权
说明:我这里配置的log-error的路径是在/usr/local/mysql/log 底下,创建的路径根据自己的实际路径来配置,注意一定也别忘了创建mariadb.log,要不然还是会报错
mkdir /usr/local/mysql/log
touch /usr/local/mysql/log/mariadb.log
mysql 用户和用户对目录进行授权
chown -R mysql:mysql /usr/local/mysql/log
重新执行步骤7
8.添加软连接,并重启mysql服务
ln -s /usr/local/mysql/support-files/mysql.server /etc/init.d/mysql
ln -s /usr/local/mysql/bin/mysql /usr/bin/mysql
service mysql restart
9.登录mysql,修改密码
密码是之前生成的让记录下来的
mysql -u root -p
若登录时报:ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’
解决方法:[修改相应的路径 vim /etc/my.cnf]
添加下面这段:
port=3306
socket = /var/lib/mysql/mysql.sock
若:
mysqld_safe Directory '/var/lib/mysql' for UNIX socket file don't exists.
“var/lib/mysql”目录不存在,首要先创建:
mkdir /var/lib/mysql
mkdir /var/lib/mysql
chmod 777 /var/lib/mysql #付予写入权限或者最大权限
再次登陆成功
10.密码修改
set password for root@localhost = password('root');
11.开放远程连接
use mysql;
update user set user.Host='%' where user.User='root';
flush privileges;
12.设置开机启动
12.1、将服务文件拷贝到init.d下,并重命名为mysql
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
12.2、赋予可执行权限
chmod +x /etc/init.d/mysqld
12.3、添加服务
chkconfig --add mysqld
12.4、显示服务列表
chkconfig --list
现在mysql就已经完全安装成功了,可以重新退出,再进去看看密码是否修改成功
看到3、4、5状态为开或者为 on 则表示成功。 如果是 关或者 off 则执行一下:
chkconfig --level 345 mysqld on
重启计算机:
reboot
其他操作:
修改密码
1. 开启免密码登陆 修改my.cnf文件 默认在/etc/my.cnf。
vim /etc/my.cnf 在【mysqld】模块下面添加:skip-grant-tables 保存退出。
2. 重启服务,使配置生效 。
service mysql restart
3. 登陆
/usr/local/mysql/bin/mysql -u root -p //不输入密码直接敲回车键
4. 刷新规则允许外部访问
use mysql #选择访问mysql库
update user set host = '%' where user = 'root'; #使root能再任何host访问
FLUSH PRIVILEGES; #刷新
5.修改密码
ALTER USER "root"@"%" IDENTIFIED BY "1234";
FLUSH PRIVILEGES; #刷新
6. 退出 quit
把/etc/my.cnf免密删掉。
重启服务 service mysql restart
7. 登陆 /usr/local/mysql/bin/mysql -u root -p //输入刚修改的密码1234敲回车键
用户权限之创建新用户并给授权指定的数据库权限
创建mysql新用户
CREATE USER 'test'@'%' IDENTIFIED BY '123';
备注上面@后的命令解释
'%' - 所有情况都能访问
‘localhost’ - 本机才能访问
’111.222.33.44‘ - 指定 ip 才能访问
3.给用户授予权限
grant all on 数据库名.数据库表 to 用户名@'%' identified by "密码";
备注
all 可以替换为 select,delete,update,create,drop
数据库名 所有的 用*
数据库表 所有的 用*
如果是阿里云ECS,记得查看云安全组规则是否开放了3306端口,如果没有,记得加上
查看磁盘空间 df -h
du -ah --max-depth=1
Linux中删除文件夹中所有文件或子文件夹
rm -rf 文件夹