*** 作系统:Linux CentOS 7.9
MySQL安装包:在官网下载需要的版本,这里我用的版本是 MySQL 8.0.11
官网下载地址:https://dev.mysql.com/downloads/mysql/
mysql-8.0.11-linux-glibc2.12-x86_64.tar
最好使用管理员权限 (root 用户)
su root
移动解压后的目录到目标安装目录:tar -xvf mysql-8.0.11-linux-glibc2.12-x86_64.tar
tar -zxvf mysql-8.0.11-linux-glibc2.12-x86_64.tar.gz
文件名太长,改成 mysql-8.0.11:sudo mv mysql-8.0.11-linux-glibc2.12-x86_64 /usr/local
增加用户组 mysql:mv mysql-8.0.11-linux-glibc2.12-x86_64 mysql-8.0.11
在用户组下增加用户 mysql:sudo groupadd mysql
检查用户组、用户是否存在:sudo useradd -r -g mysql mysql
groups mysql
若存在则显示 mysql : mysql
;若不存在,则显示 groups: mysql: No such user
修改配置文件 my.cnf:chown -R mysql:mysql /usr/local/mysql-8.0.11/
touch /etc/my.cnf
vim /etc/my.cnf
增加配置,设置编码格式及忽略大小写:
[mysqld]
basedir=/usr/local/mysql-8.0.11
datadir=/usr/local/mysql-8.0.11/data
port=3306
socket=/tmp/mysql.sock
character_set_server=utf8
lower_case_table_names=1
log-error=/usr/local/mysql-8.0.11/data/mysql.log
pid-file=/usr/local/mysql-8.0.11/data/mysql.pid
[mysql]
default-character-set = utf8
注意: MySQL 8.0 版本的忽略大小写配置 lower_case_table_names=1
一定要在执行初始化前写在配置文件里,我之前遇到过这坑,当时像用 5.7 版本一样先初始化然后再改的配置文件,导致 mysql 无法启动,所以不同版本间的差异一定要注意!
初始化:cd mysql-8.0.11
mkdir data
./bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql-8.0.11/ --datadir=/usr/local/mysql-8.0.11/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
目的:可用 service mysql start
命令来控制启动 mysql
配置环境变量:cd support-files
cp mysql.server /etc/init.d/mysql
vim /etc/profile
在底部添加以下内容:
export MYSQL_HOME="/usr/local/mysql-8.0.11"
export PATH="$PATH:$MYSQL_HOME/bin"
让修改的profile文件立即生效:
启动并登录 mysql 进行 *** 作 启动 mysql:source /etc/profile
登录 mysql:service mysql start
mysql -u root -p
初始密码可以查看 /usr/local/mysql-8.0.11/data/mysql.log
日志文件,在前面几行中找到生成的密码,如下所示:
[Note] [MY-010454] [Server] A temporary password is generated for root@localhost: dOwfzj.Fj7KC
拿到密码 dOwfzj.Fj7KC
登录 mysql ~
mysql> use mysql;
mysql> ALTER USER ‘root’@‘localhost’ IDENTIFIED WITH mysql_native_password BY ‘你的密码’;
mysql> flush privileges;
注意: 还是版本的差异问题,MySQL 8.0 版本与 5.7 版本修改密码的命令以及下面的授权命令都有或多或少的不同,一定要注意!
创建用户并授权(可根据自己的需求自由设置):mysql> create user ‘root’@’%’ identified by ‘你的密码’;
mysql> grant all privileges on *.* to ‘root’@’%’;
mysql> flush privileges;
注意: MySQL 5.7 版本只需一行命令即可完成,8.0 版本需要拆分成两行!
允许使用某个用户名及密码从任何主机连接到该 mysql 服务:注意: 上一步骤创建的 root 用户在创建时就已完成该设置,可根据需求查看 mysql.user 表中的 host 列来判断是否需要执行此设置,这里还是以 root 用户为例!
退出后重启服务:mysql> use mysql;
mysql> update user set host=’%’ where user = ‘root’;
mysql> flush privileges;
mysql> exit
到此结束 现在 MySQL 的安装、配置和部署已经完成,可以连接了!service mysql restart
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)