下面记录了我在Linux(CentOS7)环境下离线安装Mysql(5.7.34)的完整过程,如有错误或遗漏,欢迎指正。
安装步骤
一、安装前准备
1、检查是否已经安装过mysql
rpm -qa | grep mysql
whereis mysql
find / -name mysql
2、查询所有Mysql相关的组件
find / -name my.cnf
3、 删除相关目录或文件
删除查询到的结果
二、下载及解压
4、官网下载
https://dev.mysql.com/downloads/mysql/
文中的mysql解压安装在/opt下
5、解压文件
tar xzvf mysql-5.7.34-linux-glibc2.12-x86_64.tar.gz
6、重命名
mv mysql-5.7.34-linux-glibc2.12-x86_64 mysql
三、创建用户及权限
7、创建用户
检查是否存在mysql用户组和用户
cat /etc/group |grep mysql
cat /etc/passwd |grep mysql
若没有,添加用户组和用户
groupadd mysql
useradd -r -g mysql -s /bin/false mysql
8、赋权限
chown -R mysql:mysql /opt/mysql/
四、配置mysql
9、创建data、log、tmp目录
cd /opt/mysql
mkdir data
mkdir log
mkdir tmp
chown -R mysql:mysql /opt/mysql/data/
chown -R mysql:mysql /opt/mysql/log/
chown -R mysql:mysql /opt/mysql/tmp/
10、创建my.cnf文件
cd /opt/mysql
vim my.cnf
#添加内容如下
[client]
port = 3306
default-character-set=utf8
socket=/tmp/mysql.sock
[mysqld]
basedir =/opt/mysql
datadir =/opt/mysql/data
port = 3306
character-set-server=utf8
socket=/tmp/mysql.sock
log-error=/opt/mysql/log/error-log
default_storage_engine = InnoDB
max_allowed_packet=102400M
lower_case_table_names = 1
max_connections = 3000
open_files_limit = 65535
log_bin_trust_function_creators=1
skip-name-resolve
skip-external-locking
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
innodb_file_per_table=1
11、初始化mysql
cd /opt/mysql/bin
./mysqld --defaults-file=/opt/mysql/my.cnf --initialize --user=mysql --basedir=/opt/mysql --datadir=/opt/mysql/data
cat /opt/mysql/log/error-log
查看/opt/mysql/log/error-log,此处需要注意最后一行生成的临时密码,密码格式如下
root@localhost:YLi>7ecpe;YP
初始化也可执行如下命令,无密码:
./mysqld --defaults-file=/opt/mysql/my.cnf --initialize-insecure --user=mysql --basedir=/opt/mysql --datadir=/opt/mysql/data
12、注册并启动service
从support-files复制mysql.server文件到/etc/init.d/,并改名为mysql
cd /opt/mysql/support-files/
cp mysql.server /etc/init.d/mysql
修改mysql部分配置内容
cd /etc/init.d
vim mysql
#修改项
basedir=/opt/mysql
datadir=/opt/mysql/data
mysqld_pid_file_path=
if test -z "$basedir"
then
#修改项
basedir=/opt/mysql
bindir=/opt/mysql/bin
if test -z "$datadir"
then
#修改项
datadir=/opt/mysql/data
fi
#修改项
sbindir=/opt/mysql/bin
libexecdir=/opt/mysql/bin
else
bindir="$basedir/bin"
if test -z "$datadir"
then
datadir="$basedir/data"
fi
sbindir="$basedir/sbin"
libexecdir="$basedir/libexec"
fi
启动
service mysql start
#设置开机自启
chkconfig mysql on
#查询是否已设置为开机自启(enabled已设置;disabled未设置)
systemctl is-enabled mysql.service
13、建立软链接
ln -s /opt/mysql/bin/mysql /usr/bin/mysql
ln -s /opt/mysql/bin/mysqldump /usr/bin/mysqldump
ln -s /opt/mysql/bin/mysqladmin /usr/bin/mysqladmin
14、登录修改root密码及设置远程连接
mysql -hlocalhost -P3306 -uroot -p#初始密码
#改密码
alter user 'root'@'localhost' identified by '123456a?';
#设置远程连接
use mysql;
update user set host = '%' where user ='root';
flush privileges;