一、环境:centos7
二、步骤:
1、切换目录:
/use/local
2、创建mysql文件夹:
mkdir mysql
3、切换到mysql文件夹下:
cd mysql
4、下载mysql8.0安装包:
wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.20-linux-glibc2.12-x86_64.tar.xz
5、解压mysql8.0安装包:
tar xvJf mysql-8.0.20-linux-glibc2.12-x86_64.tar.xz
6、重命名解压出来的文件夹,这里改成mysql-8:
mv mysql-8.0.20-linux-glibc2.12-x86_64 mysql-8
7、/use/local/mysql文件夹下创建data文件夹 存储文件:
mkdir data
8、分别创建用户组以及用户和密码(如果提示已存在说明之前有创建过了):
groupadd mysql
useradd -g mysql mysql
9、授权刚刚新建的用户:
chown -R mysql.mysql /usr/local/mysql/mysql-8
chmod 750 /usr/local/mysql/data -R
10、配置环境,编辑/etc/profile文件:
vim /etc/profile
在最后一行加
export PATH=$PATH:/usr/local/mysql/mysql-8/bin:/usr/local/mysql/mysql-8/lib
(新手提示:添加完之后,换行,打出“:wq”,用来保存文件并退出)
11、编辑my.cnf文件:
vi /etc/my.cnf
如下为mysql配置,复制粘贴到my.cnf文件中,打出“:wq”,用来保存文件并退出
[mysql]
default-character-set=utf8mb4
[client]
socket=/var/lib/mysql/mysql.sock
[mysqld]
#port=3306
#server-id=3306
user=mysql
general_log = 1
general_log_file= /var/log/mysql/mysql.log
socket=/var/lib/mysql/mysql.sock
basedir=/usr/local/mysql/mysql-8
datadir=/usr/local/mysql/mysql-8/data
log-bin=/usr/local/mysql/mysql-8/data/mysql-bin
innodb_data_home_dir=/usr/local/mysql/mysql-8/data
innodb_log_group_home_dir=/usr/local/mysql/mysql-8/data/
character-set-server=utf8mb4
lower_case_table_names=1
autocommit=1
default_authentication_plugin=mysql_native_password
symbolic-links=0
#skip-grant-tables #免密登录mysql
[mysqld_safe]
log-error=/usr/local/mysql/mysql-8/data/mysql.log
pid-file=/usr/local/mysql/mysql-8/data/mysql.pid
#
# include all files from the config directory
12、切换到/usr/local/mysql/mysql-8/bin目录下:
cd bin
13、初始化基础信息,得到数据库的初始密码(在/usr/local/mysql/mysql-8/bin目录下执行):
./mysqld --user=mysql --basedir=/usr/local/mysql/mysql-8 --datadir=/usr/local/mysql/data/ --initialize
如图,复制出红框的初始密码,保存到本地,后面需要使用到。
ISSUE:如果因为路径等各种问题需要重新初始化的,需要清空上面创建的data文件,在data所在的目录下使用 rm -rf data 命令。
14、复制 mysql.server 文件,在/usr/local/mysql/mysql-8目录下执行:
cp -a ./support-files/mysql.server /etc/init.d/mysql
cp -a ./support-files/mysql.server /etc/init.d/mysqld
15、赋予权限:
chown 777 /etc/my.cnf
chmod +x /etc/init.d/mysql
chmod +x /etc/init.d/mysqld
16、检查一下/var/lib/mysql是否存在,否则进行创建:
mkdir /var/lib/mysql
然后再赋予权限:
chown -R mysql:mysql /var/lib/mysql/
17、启动数据库,有SUCCESS字眼说明MySQL安装完成:
service mysql start
ps:
如果发现启动失败,可以先查看data里面的mysql.log,如果有提示3306这样的字样,第一个想到的应该是端口被占用,
使用lsof -i:端口号,查看是哪个PID(进程号)占用了该端口,然后使用kill PID(进程号)杀掉进程,重新执行service mysql start
三:修改密码,并设置远程连接(为了可以在别的机器下面连接该mysql)
1、登录:
mysql -u root -p
2、输入密码:
第二步保存的密码
如忘记密码则去掉my.cnf文件中配置项 #skip-grant-tables 前的#号;重启mysql服务:
service mysql restart
停止mysql服务:
service mysql stop
mysql服务状态:
service mysql status
3、登录成功,修改密码:
使用mysql:
use mysql;
修改密码:
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码';
执行flush privileges; 使密码生效:
flush privileges;
再修改远程连接并生效:
update user set host='%' where user='root';
执行flush privileges; 使密码生效:
flush privileges;
最后就可以使用root账号去登录mysql了。如果有遇到问题的小伙伴评论留言,文中如有遗漏错误,欢迎指正。
题外:
给mysql创建新的数据库用户并授予权限:
1)创建用户(名称随意,这里的用户名称为mysql)并可以远程访问
CREATE user 'mysql'@'%';
#修改密码
alter user 'mysql'@'%' identified with mysql_native_password by 'tcl.2021';
2)创建新的数据库
#create database 数据库名 default character set utf8mb4 collate utf8mb4_unicode_ci;
3)把新的数据库授权给新用户
#将test库的所有权限赋予mysql用户
grant all privileges on test.* to "mysql"@"%";
grant all privileges on test.* to "tcl"@"%";
4)、刷新权限
flush privileges;
遇见问题:
初始化基本信息报错:
执行命令:./mysqld --user=mysql --basedir=/usr/local/mysql/mysql-8 --datadir=/usr/local/mysql/data/ --initialize
错误:./mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory
原因:缺少了libaio.so.1的依赖库
解决方法:yum install -y libaio