mkdir -p /home/mysql/mysql-8.0.11-linux-glibc2.12-x86_64/run/mariadb
mkdir -p /home/mysql/mysql-8.0.11-linux-glibc2.12-x86_64/log/mariadb
touch /home/mysql/mysql-8.0.11-linux-glibc2.12-x86_64/log/mariadb/mariadb.log
touch /home/mysql/mysql-8.0.11-linux-glibc2.12-x86_64/run/mariadb/mariadb.pid
修改所有者
chown -R mysql:mysql /home/mysql/mysql-8.0.11-linux-glibc2.12-x86_64/
初始化
./bin/mysqld --initialize --user=mysql --datadir=/home/mysql/mysql-8.0.11-linux-glibc2.12-x86_64/data/
#MySQL SSL RSA设置
bin/mysql_ssl_rsa_setup --datadir /home/mysql/mysql-8.0.11-linux-glibc2.12-x86_64/data/
#自启动
cp support-files/mysql.server /etc/init.d/mysql.server
使用自动生成的 密码
#修改 /etc/my.cnf 文件 mysql --help|grep 'my.cnf' 命令可以看 :/etc/my.cnf, /etc/mysql/my.cnf, /usr/local/etc/my.cnf, ~/.my.cnf 这些就是mysql默认会搜寻my.cnf的目录,顺序排前的优先。
可以简单配置 data 目录 或者参考 详细设置配置
#启动
mysqld --user=root &
#修改密码
mysql>alter user 'root'@'localhost' identified by "DoctorAI#1234";
#设置远程等陆(如果不修改就会 【mysql navicat 报错1130】)
mysql>use mysql
mysql>update user set host='%' where user='root';
mysql>flush privileges;
#mysql 8 修改 加密规则 (如果不修改就会 【mysql navicat报错 2059】)
mysql>ALTER USER 'root'@'%' IDENTIFIED BY 'DoctorAI#1234' PASSWORD EXPIRE NEVER;
mysql>ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'DoctorAI#1234'; #更新一下用户的密码
mysql>FLUSH PRIVILEGES; #刷新权限
先来解释一下为什么会报这个错,在mysql8之前的版本使用的密码加密规则是mysql_native_password,但是在mysql8则是caching_sha2_password。
解决方案有很多,我是创建了一个新用户,并指定加密规则为:mysql_native_password,这样的话,仅需要执行以下语句即可:
create user 'your username'@'%' identified with mysql_native_password by 'your password'
也可以直接修改my配置文件,将默认密码规则设置为mysql_native_password,刷新权限并重置root密码即可。
default_authentication_plugin=mysql_native_password
如果想用新的caching_sha2_password也是可以的,java的话mysql已经推出了新的mysql-connector-java包,引入后,驱动使用com.mysql.cj.jdbc.driver即可,这个方案本地试了。没有问题。
开放3306端口
firewall -cmd --permanent --add-prot=3306/tcp
重启防火墙
firewall -cmd --reload
或者关闭防火墙
systemctl stop firewalld.service #停止firewall
systemctl disable firewalld.service #禁止firewall开机启动
firewall-cmd --state #查看默认防火墙状态
#关闭
./mysqld --user=root stop
#开启 通过在命令后面加上--user=root 进行强制使用root账号启动。这样是最快的。
mysqld --user=root &
导入数据库的表结构
--删除数据库
mysql> drop database test;
--创建新的数据库
mysql> create database test;
--进入该数据库
mysql> use test;
--导入数据
mysql> source /home/xx.sql
参考:https://dev.mysql.com/doc/refman/8.0/en/binary-installation.html