mysql安装教程
1、下载前的注意事项
1.1、选择 glibc 版本
选择mysql版本前先看一下操作系统(CentOS)的 glibc 版本
使用命令:
ldd --version
1.2、官方下载地址
链接: 官方下载地址
1.3、 卸载MariaDB
在CentOS中默认安装有MariaDB。
因此,需要先卸载自带的MariaDB,再安装MySQL。
- 查询MariaDB
rpm -qa|grep mariadb
- 卸载MariaDB
rpm -e --nodeps 【上面查询出来的MariaDB】
- 检查是否卸载干净
rpm -qa|grep mariadb
2、下载后操作
2.1、解压mysql文件
.tar.gz后缀:tar -zxvf 文件名
.tar.xz后缀:tar -Jxvf 文件名
2.2、重命名
mv 解压后文件夹名 mysql8
3、用户和用户组
3.1、创建用户和用户组
#创建一个用户组:mysql
groupadd mysql
#创建一个系统用户:mysql,指定用户组为mysql
useradd -r -g mysql mysql
4、数据目录
4.1、创建数据目录
mkdir -p /usr/local/mysql/mysql8/datas
#这里是我自己的目录,你们可以自己配置
4.2、设置权限
#更改属主和数组
chown -R mysql:mysql /usr/local/mysql/mysql8/datas
#更改模式
chmod -R 750 /usr/local/mysql/mysql8/datas
5、初始化MySQL
5.1、配置mysql参数,也就是设置配置文件
[mysql]
#默认字符集
default-character-set=utf8mb4
[client]
port = 33068
socket = /tmp/mysql.sock
[mysqld]
port = 33068
server-id = 33068
user = mysql
socket = /tmp/mysql.sock
#安装目录
basedir = /usr/local/mysql/mysql8/
#数据存放目录
datadir = /usr/local/mysql/mysql8/datas/mysql
log-bin = /usr/local/mysql/mysql8/datas/mysql/mysql-bin
innodb_data_home_dir =/usr/local/mysql/mysql8/datas/mysql
innodb_log_group_home_dir =/usr/local/mysql/mysql8/datas/mysql
#日志及进程数据的存放目录
log-error =/usr/local/mysql/mysql8/datas/mysql/mysql.log
pid-file =/usr/local/mysql/mysql8/datas/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
5.2、初始化mysql
mysqld --defaults-file=/usr/local/mysql/mysql8/my.cnf
--basedir=/usr/local/mysql/mysql8/
--datadir=/usr/local/mysql/mysql8/datas/mysql
--user=mysql --initialize-insecure
参数:
- defaults-file:指定配置文件(要放在–initialize 前面)
- user: 指定用户
- basedir:指定安装目录
- datadir:指定初始化数据目录
- intialize-insecure:初始化无密码
5.3、初始化mysql报错解决记录
-
错误1
mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory
#遇到这个错误,意味着系统找不到 libaio.so.1 这个共享库文件,这通常是由于该库未安装或者路径设置不正确导致的。解决这个问题,你可以按照以下步骤操作:
- 安装 libaio 库
首先,尝试安装 libaio 库,这个库提供了对异步I/O的支持,MySQL 8可能依赖于它。在CentOS 7上,可以使用 yum 来安装:
sudo find / -name libaio.so.1- 验证安装
安装完成后,确认 libaio.so.1 文件是否存在以及它的位置。通常,这个文件会被安装到 /usr/lib64/ 或 /usr/lib/ 目录下。你可以通过以下命令查找:
sudo find / -name libaio.so.1- 如果库已存在但问题仍然出现
如果库文件已经存在,但是MySQL服务启动时仍然报同样的错误,可能是由于库路径没有被正确加载。这时,你需要确保 /etc/ld.so.conf.d 目录下的某个配置文件包含了库文件所在目录,或者直接在 /etc/ld.so.conf 文件中添加该路径。
sudo ldconfig
6、启动MySQL
进入mysql的bin目录下,用下方命令启动。
mysqld_safe --defaults-file= /usr/local/mysql/mysql8/my.cnf &
6.1、登录mysql
#无密码登录方式 /data/software/mysql8/bin/mysql -u root --skip-password
#有密码登录方式(初始的随机密码在/data/mysql8_data/mysql/mysql.log下) mysql -u root -p
password:随机密码
6.2、修改密码
#修改密码
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456';
#刷新权限
FLUSH PRIVILEGES;
6.3、设置运行远程登录
use mysql
update user set user.Host='%' where user.User='root';
flush privileges;
quit;
6.4、创建新用户并设置远程连接
- 以root用户身份登录MySQL:
mysql -u root -p
-
创建用户
接下来,创建一个新用户,并允许其从任意IP地址(%)进行远程连接,同时为其设置密码。例如,创建一个名为newuser,密码为password123的用户,并允许远程连接:
CREATE USER 'newuser'@'%' IDENTIFIED BY 'password123';
- 授予远程连接权限
GRANT ALL PRIVILEGES ON *.* TO 'newuser'@'%';
- 刷新权限
FLUSH PRIVILEGES;