linux安装mysql

linux安装mysql,第1张

linux安装mysql 源码安装
  1. 下载mysql安装包
wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz

可能会出现以下问题

--2021-09-27 14:44:01--  https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz
Resolving dev.mysql.com (dev.mysql.com)... 137.254.60.11
Connecting to dev.mysql.com (dev.mysql.com)|137.254.60.11|:443... connected.
HTTP request sent, awaiting response... 302 Found
Location: https://cdn.mysql.com//archives/mysql-5.7/mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz [following]
--2021-09-27 14:44:02--  https://cdn.mysql.com//archives/mysql-5.7/mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz
Resolving cdn.mysql.com (cdn.mysql.com)... 104.85.245.54
Connecting to cdn.mysql.com (cdn.mysql.com)|104.85.245.54|:443... connected.
ERROR: cannot verify cdn.mysql.com's certificate, issued by ‘/C=US/O=DigiCert Inc/OU=www.digicert.com/CN=GeoTrust RSA CA 2018’:
  Issued certificate not yet valid.
To connect to cdn.mysql.com insecurely, use '--no-check-certificate'

远程调用下载文件直接用wget就可以,一般文件路径类型是http。如果有遇到是https就会下载出错。
只需要在wget后面加上–no-check-certificate就可以,需要一个认证下载指令而已。

wget --no-check-certificate https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz
  1. 解压安装包
tar -xvf mysql-5.7.24-linux-glibc2.12-x86_64.tar.gz
  1. 移动安装包到/usr/local/,为了方便管理。如果/usr/local/下已经存在mysql,请将已存在mysql文件修改为其他名称,否则后续步骤可能无法正确进行。
# 移动并重名了为mysql
mv mysql-5.7.24-linux-glibc2.12-x86_64 /usr/local/mysql
  1. 创建mysql储存目录
# 我们就创建在mysql目录下,当然你可以在其他位置
mkdir /usr/local/mysql/data
  1. 更换/usr/local/mysql目录所属的用户组和用户,以及修改权限
# 先检查mysql用户和用户组是否存在,如果不存在需要我们手动创建
cat /etc/group | grep mysql
cat /etc/passwd |grep mysql
# 创建mysql用户以及用户组
groupadd mysql
useradd -r -g mysql mysql

# 更改目录所属,与权限
chown -R mysql:mysql /usr/local/mysql
chmod -R 755 /usr/local/mysql
  1. 编译安装并初始化mysql,务必记住初始化输出日志末尾的密码(数据库管理员临时密码)
cd /usr/local/mysql/bin
./mysqld --initialize --user=mysql --datadir=/usr/local/mysql/data --basedir=/usr/local/mysql

我这里初始化的时候报错了

[root@fyh bin]# ./mysqld --initialize --user=mysql --datadir=/usr/local/mysql/data --basedir=/usr/local/mysql 
./mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory

百度了一下,可能是链接库文件没有安装

# 检查一下libaio是否安装
rpm -qa|grep libaio
# 没有安装就yum安装一下
yum install  libaio-devel.x86_64

安装完libaio后再初始化一次

[root@fyh bin]# ./mysqld --initialize --user=mysql --datadir=/usr/local/mysql/data --basedir=/usr/local/mysql2021-09-27T07:15:36.348116Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2021-09-27T07:15:36.615283Z 0 [Warning] InnoDB: New log files created, LSN=45790
2021-09-27T07:15:36.656428Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
2021-09-27T07:15:36.727150Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: b64b0ffc-1f62-11ec-82fa-000c29e06742.
2021-09-27T07:15:36.727995Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.
2021-09-27T07:15:36.729169Z 1 [Note] A temporary password is generated for root@localhost: l:a7RtoQdsRu

最后一行会出现root@localhost: l:a7RtoQdsRu字段,后面的l:a7RtoQdsRu就是零时密码
修改配置文件

vim /etc/my.cnf

[client]
port = 3306
socket = /tmp/mysql.sock

[mysqld]
character_set_server=utf8
init_connect='SET NAMES utf8'
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
socket=/tmp/mysql.sock
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
#不区分大小写
lower_case_table_names = 1

sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

max_connections=5000

default-time_zone = '+8:00'

手动创建一下日志文件

cd /var/log/
touch mysqld.log
chmod 777 mysqld.log
chown mysql:mysql mysqld.log

配置进程文件

cd /var/run/
mkdir mysqld
chmod 777 mysqld
cd mysqld
vim mysqld.pid
chmod 777 mysqld.pid
chown mysql:mysql mysqld.pid
  1. 启动服务,修改密码
# 启动mysql
/usr/local/mysql/support-files/mysql.server start
# 进入mysql
/usr/local/mysql/bin/mysql -uroot -p
提示输入密码:%:i>DL:_+6UK # 这里输入刚刚安装时出现的零时密码

# 初始化后登录mysql必须要修改密码
set password for root@localhost = password('123456');
  1. 开启远程访问
grant all privileges on *.* to 'root'@'%' identified by '123456';
flush privileges;
# 记得关闭防火墙,或者放行mysql绑定的端口
  1. 将mysql添加到系统服务
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
# 开机自启动
chkconfig --add mysqld
# 启动mysql
service mysqld start
  1. 添加环境变量
vim /etc/profile
export PATH=/usr/local/mysql/bin:$PATH
:wq
source /etc/profile

# 加载环境变量后就可以直接使用mysql进入了

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/4678564.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-07
下一篇 2022-11-07

发表评论

登录后才能评论

评论列表(0条)

保存