一、下载
参考:https://blog.csdn.net/qq_44037285/article/details/125725217
或https://blog.csdn.net/qq_38591577/article/details/128120315
或https://cloud.tencent.com/developer/article/2076540
官网:https://dev.mysql.com/downloads/mysql/
上传至Linux
二、安装
1、保证网络是通的且当前系统里没有安装其余的mysql
#查看是否联网
ping www.baidu.com
# 查询是否安装了mysql server
rpm -qa |grep mysql
若已经安装了mysql servel需要卸载可使用以下命令
上述不可用则用这个
find / -name mysql
rm -rf /data/mysql8_data/mysql/mysql
2、安装编译代码需要的包(这步可以不做)
yum -y install make gcc-c++ cmake bison-devel ncurses-devel
3.解压mysql安装包
tar.xz 直接解压缩命令
原来 .tar.xz 命令可以直接解压,并且可以指定解压缩文件的输出目录,这样 windows 上的 tar.xz 文件,如 Linux 内核文件,可以轻松的解压缩。
- 直接使用 tar xf xxx.tar.xz -C /xxx/xxx/ 方式解压缩 tar.xz 压缩文件
- -C /xxx/xxx/ 可以指定输出到 指定的路径下
tar -Jxvf mysql-8.0.32-linux-glibc2.12-x86_64.tar.xz
3、移动位置并修改名称
mv mysql-8.0.32-linux-glibc2.12-x86_64 /usr/local
cd /usr/local
mv mysql-8.0.32-linux-glibc2.12-x86_64 mysql8
4、创建mysql组和用户
groupadd mysql
# 添加一个新用户叫mysql并将其添加进mysql组中(前面的为组名,后面的为用户名)
useradd -r -g mysql mysql
#查看用户信息
id mysql
# 查看创建了哪些组
cat /etc/group
5、创建mysql数据目录
mkdir -p /data/mysql8_data
6、赋予权限
# 递归改变文件所有者和所有组
chown mysql:mysql -R /data/mysql8_data
chmod 750 /data/mysql8_data/ -R
7、将/usr/local/mysql/bin 目录添加到PATH变量中
vim /etc/profile
export PATH=$PATH:/usr/local/mysql8/bin
三、配置MySQL参数
打开my.cnf文件
vim /etc/my.cnf
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8mb4
[client]
port = 3306
socket = /tmp/mysql.sock
[mysqld]
port = 3306
server-id = 3306
user = mysql
socket = /tmp/mysql.sock
# 设置mysql的安装目录
basedir = /usr/local/mysql8
# 设置mysql数据库的数据的存放目录
datadir = /data/mysql8_data/mysql
log-bin = /data/mysql8_data/mysql/mysql-bin
innodb_data_home_dir =/data/mysql8_data/mysql
innodb_log_group_home_dir =/data/mysql8_data/mysql
#设置mysql数据库的日志及进程数据的存放目录
log-error =/data/mysql8_data/mysql/mysql.log
pid-file =/data/mysql8_data/mysql/mysql.pid
# 服务端使用的字符集默认为8比特编码
character-set-server=utf8mb4
#忽略大小写
lower_case_table_names=1
autocommit =1
skip-external-locking
key_buffer_size = 256M
max_allowed_packet = 1M
table_open_cache = 1024
sort_buffer_size = 4M
net_buffer_length = 8K
read_buffer_size = 4M
read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 64M
thread_cache_size = 128
#query_cache_size = 128M
tmp_table_size = 128M
explicit_defaults_for_timestamp = true
max_connections = 500
max_connect_errors = 100
open_files_limit = 65535
binlog_format=mixed
binlog_expire_logs_seconds =864000
# 创建新表时将使用的默认存储引擎
default_storage_engine = InnoDB
innodb_data_file_path = ibdata1:10M:autoextend
innodb_buffer_pool_size = 1024M
innodb_log_file_size = 256M
innodb_log_buffer_size = 8M
innodb_flush_log_at_trx_commit = 1
innodb_lock_wait_timeout = 50
transaction-isolation=READ-COMMITTED
[mysqldump]
quick
max_allowed_packet = 16M
[myisamchk]
key_buffer_size = 256M
sort_buffer_size = 4M
read_buffer = 2M
write_buffer = 2M
[mysqlhotcopy]
interactive-timeout
四、初始化MySQL
1、进入安装地址bin目录下
cd /usr/local/mysql8/bin
2、初始化
./mysqld --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql8 --datadir=/data/mysql8_data/mysql --user=mysql --initialize
参数解释:
–defaults-file=/etc/my.cnf 指定配置文件(放在 --initialize 前面)
–user=mysql 指定用户
–basedir=/usr/local/mysql/ 指定安装目录
–datadir=/usr/local/mysql/data/ 指定初始化数据目录
3、使用临时密码登录
cat /data/mysql8_data/mysql/mysql.log
mysql -uroot -p
我安装时报了这个错误。使用./mysql就可以,原因目前未知
./mysql -uroot -p
如果无法连接
进入安装目录,启动mysql服务
cd /usr/local/mysql8
sudo ./support-files/mysql.server start
假设执行时报错:
解决方法参考:https://blog.csdn.net/error_404_11/article/details/129757691
解决办法:
- vi support-files/mysql.server
- 加入basedir和datadir路径(与前面my.cnf里配置的basedir跟datadir保持一致)
- 再重新启动就解决啦~~
全局搜索basedir
启动成功
重新登录一下
cd /usr/local/mysql8/bin
cat /data/mysql8_data/mysql/mysql.log
./mysql -uroot -p
五、修改密码并添加远程访问
1、修改临时密码为123456
ALTER USER 'root'@'localhost' IDENTIFIED with mysql_native_password BY '123456';
2、刷新权限
flush privileges;
3、添加远程访问
use mysql;
CREATE user 'root'@'%'; #创建用户任意远程访问
alter user 'root'@'%' identified with mysql_native_password by '123456'; #修改密码
grant all privileges on *.* to "root"@"%"; #给用户授权
flush privileges;
4、退出
exit
六、设置开机自启动
1、将mysql.server 文件复制到 /etc/rc.d/init.d/ 目录下mysql 文件
cp /usr/local/mysql8/support-files/mysql.server /etc/rc.d/init.d/mysql
2、赋予权限
chmod +x /etc/init.d/mysql
3、添加服务
chkconfig --add mysql
4、查看服务列表
chkconfig --list
如果345为关
chkconfig --level 345 mysql on
使用mysql命令
ln -s /usr/local/mysql8/bin/mysql /usr/bin