1.下载
网址:https://dev.mysql.com/downloads/mysql/
按如图选择,然后点击Download
这里它让我们登录,我们直接选择不登录,直接下载
2.关闭防火墙
systemctl disable firewalld
3.正式安装
- 切换到
/usr/local
下
cd /usr/local
- 创建
mysql
文件夹,并进入里面
mkdir mysql ; cd mysql
- 将刚刚下载好的安装包导入里面,并解压
tar -xvf mysql-8.0.35-linux-glibc2.12-x86_64.tar.xz
- 重命名文件夹为:
mysql-8.0
mv mysql-8.0.35-linux-glibc2.12-x86_64.tar.xz mysql-8.0
- 在
/usr/local/mysql
文件夹下创建data文件夹,存储文件
mkdir data
-
创建用户组、用户和密码
groupadd mysql useradd -g mysql mysql
-
授权刚刚创建的用户
chown -R mysql:mysql /usr/local/mysql/mysql-8.0
-
配置环境,编辑/etc/profile文件
vim /etc/profile
在最后一行加上:
export PATH=$PATH:/usr/local/mysql/mysql-8.0/bin:/usr/local/mysql/mysql-8.0/lib
-
使配置文件生效
source /etc/profile
-
编辑
my.cnf
文件vim /etc/my.cnf
加入以下信息
[mysql] default-character-set=utf8 [client] socket=/var/lib/mysql/mysql.sock [mysqld] port=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.0 datadir=/usr/local/mysql/data log-bin=/usr/local/mysql/data/mysql-bin innodb_data_home_dir=/usr/local/mysql/data innodb_log_group_home_dir=/usr/local/mysql/data/ character-set-server=utf8mb4 lower_case_table_names=1 autocommit=1 default_authentication_plugin=mysql_native_password symbolic-links=0 [mysqld_safe] log-error=/usr/local/mysql/data/mysql.log pid-file=/usr/local/mysql/data/mysql.pid
-
切换到
/usr/local/mysql/mysql-8.0/bin
cd /usr/local/mysql/mysql-8.0/bin
-
安装libaio环境
yum install -y libaio
-
初始化基础信息,得到数据库的初始密码(在
/usr/local/mysql/mysql-8.0/bin
目录下执行)./mysqld --user=mysql --basedir=/usr/local/mysql/mysql-8.0 --datadir=/usr/local/mysql/data/ --initialize
-
将mysqld服务添加到系统中,并赋予权限
cd /usr/local/mysql/mysql-8.0 cp -a ./support-files/mysql.server /etc/init.d/mysql chown 777 /etc/my.cnf chmod +x /etc/init.d/mysql chkconfig --add mysql
-
检查一下/var/lib/mysql是否存在,否则进行创建
mkdir /var/lib/mysql
-
赋予其权限
chown -R mysql:mysql /var/lib/mysql
-
启动数据库
systemctl start mysql # 启动mysql systemctl status mysql # 查看mysql状态
进入数据库
mysql -u root -p
输入刚刚初始化好的密码:V:s:pkjCm9AO
成功进入!
-
重置root密码
这里我设成了与Linux登录密码一致
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456qqq.';
-
配置root远程登录
# 第一次设置root远程登录,并配置远程密码使用如下SQL命令 create user 'root'@'%' IDENTIFIED WITH mysql_native_password BY '密码!'; -- 密码需要符合:大于8位,有大写字母,有特殊符号,不能是连续的简单语句如123,abc # 后续修改密码使用如下SQL命令 ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY '密码';
远程登录成功!
-
退出MySQL控制台界面
exit # 退出命令 # 或者通过快捷键退出:ctrl + d
-
MySQL默认绑定了3306端口,可以通过端口占用检查MySQL的网络状态
netstat -anp | grep 3306
4.补充
MySQL 8.0中,root用户默认不能直接创建数据库。这是因为MySQL 8.0引入了一个新的安全功能,即用户只能对自己拥有的数据库进行操作。
-
使用 CREATE USER 命令创建一个新用户,并赋予该用户对指定数据库的所有权限。例如,创建一个名为 newuser 的用户,并许其在所有数据库上创建表和数据库:
CREATE USER 'newuser'@'%' IDENTIFIED BY 'your password'; GRANT ALL PRIVILEGES ON *.* TO 'newuser'@'%' WITH GRANT OPTION; # 刷新权限,生效 FLUSH PRIVILEGES:
-
如果需要让root用户能够直接创建数据库,可以修改mysql 库中的user 表,将root 用户的Host字段设置为%,并将 create_priv 字段的值设置为Y。请注意,这种方法会降低系统的安全性不建议在生产环境中使用。