文章目录
安装包下载地址: https://downloads.mysql.com/archives/community/

查看是否已经有了安装的MySQL
检查系统是否安装mysql:
rpm -qa | grep mysql
如果有则强制卸载:
rpm -e --nodeps $(rpm -qa | grep mysql)
或者用
find / -name mysql
# 或者 whereis mysql 查询MySQL相关文件
# 发现后用rm -rf删除
MySQL 安装
上传至服务器并解压文件,必须将MySQL转义到/usr/local/mysql/目录下,否则启动会报错
tar -xvf mysql-5.7.37-linux-glibc2.12-x86_64.tar.gz
mv mysql-5.7.37-linux-glibc2.12-x86_64/* /usr/local/mysql/ # 修改MySQL目录,如果/usr/local/mysql/不存在就新建
建立用户和组
groupadd mysql
useradd -r -g mysql -s /bin/false mysql
创建相关目录
mkdir -p /data/mysql
chown -R mysql:mysql /data # 给MySQL授权此目录权限
chown -R mysql:mysql /usr/local/mysql/
chmod 755 /data
``
## 配置环境变量
配置root用户环境变量
```sql
cat <<EOF>> /root/.bash_profile # <<EOF>>标识输入EOF后结束编辑
在文件可编辑状态输入
> export PATH=\$PATH:/usr/local/mysql/bin
> EOF
生效环境变量
source /root/.bash_profile
编译和初始化
./mysqld --initialize --user=mysql --datadir=/data/mysql --basedir=/usr/local/mysql
执行完成后把密码复制出来
配置my.cnf
在MySQL目录 cd /usr/local/mysql/
创建my.cnf
[mysqld]
user=mysql
datadir=/data/mysql
basedir=/usr/local/mysql
pid-file=/data/mysql/mysql.pid
port=3306
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
symbolic-links=0
max_connections=400
innodb_file_per_table=1
lower_case_table_names=1
character_set_server=utf8mb4
socket=/data/mysql/mysql.sock
[mysqld]不能少,此是文件头
socket和pid-file最好指定并且给mysql用户赋权限,如果启动报错有和此配置文件不一致的,可能是/etc/my.cnf导致的,删除掉/etc/my.cnf,用自定义的软连接到此处,ln -s /usr/local/mysql/my.cnf /etc/my.cnf
启动服务
/usr/local/mysql/support-files/mysql.server start
此表示启动成功
添加mysql 软连接并重启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
修改密码
登录
mysql -u root -p #提示输入密码后输入密码
set password for root@localhost = password('123456'); # 123456为修改后的密码
8.0.31版本修改密码
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
修改任何ip都可以访问
use mysql;
update user set user.Host='%' where user.User='root';
flush privileges;
日志文件
日志文件路径配置在my.cfg中,也可以通过名称查询,
查看日志路径 show variables like ‘log_%’;
vim /etc/my.cnf
[mysqld]
#错误日志
log-error=/usr/local/mysql/data/mysql_error.log #指定错误日志的保存路径
#通用查询日志 不建议开
general_log=ON
general_log_file=/usr/local/mysql/data/mysql_general.log
#二进制日志
log-bin=mysql-bin 或log_bin=mysql-bin
#慢查询日志
slow_query_log=ON
slow_query_log_file=/usr/local/mysql/data/mysql_slow_query.log
long_query_time=5 #设置超时时间
#配置文件添加完后需要重启MySQL
systemctl restart mysql
rmp方式安装
wget --no-check-certificate https://repo.mysql.com/mysql80-community-release-el7-5.noarch.rpm
yum localinstall -y mysql80-community-release-el7-5.noarch.rpm
yum install -y mysql-community-server
只安装客户端
安装时要加–nogpgcheck,否则会验证密钥
wget https://dev.mysql.com/get/mysql80-community-release-el7-5.noarch.rpm
sudo rpm -Uvh mysql80-community-release-el7-5.noarch.rpm
sudo yum install mysql --nogpgcheck
离线安装
下载mysql的安装压缩包,下载地址:https://downloads.mysql.com/archives/community/
下载5
版本的最新版本,8版本的解压后可能会提示没有其他依赖
下载好后,解压后进入bin目录使用./mysql
命令即可
安装过程中遇到的问题
- 一开始没有把MySQL安装目录设置到
/usr/local/mysql
启动报错 - 没有设置pid文件启动报错
- 登录时没有mysql.sock文件报错
- 还有启动时报忽略
my.cnf文件,原因是my.cnf权限为777
,需要修改为655才不会被忽略
以上几种都创建文件后,然后给mysql用户授权即可,通过chown -R mysql:mysql 文件路径 - 使用
mysql -uroot -p
连接时一直提示ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
,虽然配置了socket文件的路径还是报这个错误,需要用软连接将配置的和报错中的路径连接起来ln -s /data/mysql/mysql.sock /tmp/mysql.sock
,启动时需要用service mysql start
启动,没有软连接时也可以连接mysql,加上-h 127.0.0.1参数,看网上说用此参数就成了TCP连接 Failed to find valid data directory
,mysql初始化的时候找不到对应的数据库存储目录,启动时启动页面报ERROR! The server quit without updating PID file (/data/mysql/mysql.pid)
解决:手动删掉自己创建的data文件夹,再执行./mysqld --initialize --user=mysql --datadir=/data/mysql --basedir=/usr/local/mysql
程序会在自动MySQL文件夹下创建data文件夹以及对应的文件
此是解决方式一种,其实其他报错也会提示ERROR! The server quit without updating PID file (/data/mysql/mysql.pid),只有查看错误日志才会知道真正的失败原因,还有最好把自己创建的my.cnf软连接到/etc/my.cnfDifferent lower_case_table_names settings for server ('1') and data dictionary ('0').
启动错误日志中报这个,需要在初始化和编译时添加上--lower_case_table_names=1