我这里用的版本是(mysql-8.0.28-linux-glibc2.12-x86_64.tar.xz)
tar xvJf mysql-8.0.28-linux-glibc2.12-x86_64.tar.xz
mv mysql-8.0.11-linux-glibc2.12-x86_64 /usr/local/mysql
rm -rf mysql-8.0.28-linux-glibc2.12-x86_64.tar.xz
mkdir /usr/local/mysql/data
#用户组
$ groupadd mysql
#用户 (用户名/密码)
$ useradd -g mysql mysql
#授权
$ chown -R mysql.mysql /usr/local/mysql/
/usr/local/mysql/bin/mysqld --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/ --initialize
如果报错(bin/mysqld: error while loading shared libraries: libnuma.so.1: cannot open shared object file:)
可以先执行
yum install numactl
$ cp -a ./support-files/mysql.server /etc/init.d/mysql # 若mysqld,以下mysql相应的修改mysqld
$ chmod +x /etc/init.d/mysql
$ chkconfig --add mysql
$ chkconfig --list mysql #检查服务是否生效
vim /etc/my.cnf
[mysqld]
basedir = /usr/local/mysql
datadir = /usr/local/mysql/data
socket = /usr/local/mysql/mysql.sock
character-set-server=utf8
port = 3306
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
[client]
socket = /usr/local/mysql/mysql.sock
default-character-set=utf8
#启动
$ service mysql start;
#查看启动状态
$ service mysql status;
systemctl stop firewalld 关闭网络防火墙
systemctl disable firewalld 关闭开启自启动(永久关闭)
$ ln -s /usr/local/mysql/bin/mysql /usr/bin
注意:5.7之前版本安装完成之后没有密码,mysql5.7之后的版本的初始密码是随机生成的,放在了 /var/log/mysqld.log
使用命令 grep ‘temporary password’ /var/log/mysqld.log 读出来即可
$ mysql -u root
如果提示错误ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO),root账户没有设置密码,可以在安装账户下设置密码
#关闭服务
$ service mysql stop
#安全模式登录(需要cd 到 /usr/local/mysql/bin )
./mysqld_safe --skip-grant-tables
#需要打开新的终端,登录mysql
$ ./mysql -u root
#设置密码
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY'自己要设置的密码';
刷新权限
flush privileges;
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
mysql> ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY'此处填写你的密码';
Query OK, 0 rows affected (0.08 sec)
关于14部 我看了很多帖子 我也不知道是不是我是8.0.28的问题 ,还是我的步骤有问题 我mysql执行此句 语法错误
所以我直接修改了root的权限
可以先到mysql库下面直接先修改
mysql -u root -pvmwaremysql>use mysql;
mysql>update user set host = '%' where user = 'root';
本来我们应该cp复制出一条root的数据修改为%任意ip 我们可以先直接修改,后续可以登录 用第三方插件navicat去mysql库的user表 复制新增一条恢复数据也可以的!