离线安装mysql8.0
1安装包上传至服务器 解压到当前文件夹
tar -xvf mysql-8.0.23-linux-glibc2.12-x86_64.tar.xz
2移动解压后的目录到目标安装目录
sudo mv mysql-8.0.23-linux-glibc2.12-x86_64 /usr/local
3文件名太长,改成 mysql
mv mysql-8.0.11-linux-glibc2.12-x86_64 mysql
4增加用户组 mysql:
sudo groupadd mysql
5在用户组下增加用户 mysql
sudo useradd -r -g mysql mysql
6检查用户组、用户是否存在
groups mysql
若存在则显示 mysql : mysql ;若不存在,则显示 groups: mysql: No such user
7将安装目录 /usr/local/mysql/ 的所有者及所属组改为 mysql
chown -R mysql:mysql /usr/local/mysql/
8修改配置文件 my.cnf
touch /etc/my.cnf
vim /etc/my.cnf
增加配置,设置编码格式及忽略大小写:
[mysqld]
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
port=3306
socket=/tmp/mysql.sock
character_set_server=utf8
lower_case_table_names=1
log-error=/usr/local/mysql/data/mysql.log
pid-file=/usr/local/mysql/data/mysql.pid
[mysql]
default-character-set = utf8
9在 mysql 目录下创建一个 data 文件夹
cd mysql-8.0.11
mkdir data
10初始化
./bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/
如果出现以下错误:
./bin/mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory
./bin/mysqld: error while loading shared libraries: libnuma.so.1: cannot open shared object file: No such file or directory
执行以下命令后重试:
yum install libaio
yum -y install numactl
11将mysql加入到可控制启动服务的文件夹内,并命名mysql(service可控制的服务名)
cd support-files
cp mysql.server /etc/init.d/mysql
配置环境变量:
vim /etc/profile
在底部添加以下内容:
export MYSQL_HOME="/usr/local/mysql"
export PATH="$PATH:$MYSQL_HOME/bin"
让修改的profile文件立即生效:
source /etc/profile
12启动并登录 mysql 进行操作
启动 mysql:
service mysql start
报错如图
启动失败执行以下操作
mkdir /var/log/mariadb
touch /var/log/mariadb/mariadb.log
用户组及用户
chown -R mysql:mysql /var/log/mariadb/
/usr/local/mysql/support-files/mysql.server start
登录 mysql:
mysql -u root -p
初始密码可以查看 /usr/local/mysql/data/mysql.log 日志文件,在前面几行中找到生成的密码,如下所示:
[Note] [MY-010454] [Server] A temporary password is generated for root@localhost: dOwfzj.Fj7KC
拿到密码 dOwfzj.Fj7KC 登录 mysql ~
13修改密码
ALTER USER ‘root’@‘localhost’ IDENTIFIED WITH mysql_native_password BY ‘你的密码’;
mysql> ALTER USER 'root'@'localhost'IDENTIFIED WITH mysql_native_password BY'123456';
mysql> flush privileges;
14创建用户并授权(可根据自己的需求自由设置):
mysql> create user 'root'@'%' identified by '123456';
mysql> grant all privileges on *.* to 'root'@'%';
mysql> flush privileges;
允许使用某个用户名及密码从任何主机连接到该 mysql 服务:
注意: 上一步骤创建的 root 用户在创建时就已完成该设置,可根据需求查看 mysql.user 表中的 host 列来判断是否需要执行此设置,这里还是以 root 用户为例!
mysql> use mysql;
mysql> update user set host=’%’ where user = ‘root’;
mysql> flush privileges;
退出后重启服务:
mysql> exit
service mysql restart