Linux下安装mysql
准备:
参考链接:https://blog.csdn.net/ztx114/article/details/124438831
linux系统:centos_8_5_x64_20G_alibase_20220428.vhd
mysql版本:mysql-8.0.29-linux-glibc2.12-x86_64.tar.xz
一、下载
https://dev.mysql.com/downloads/mysql/
二、解压
-
创建
/usr/local/mysql
mkdir -p /usr/local/mysql
-
将下载好的mysql安装包放到
/usr/local/mysql
-
解压安装
解压 zx文件 xz -d /usr/local/mysql/mysql-8.0.29-linux-glibc2.12-x86_64.tar.xz 解压 tar文件 tar -xvf /usr/local/mysql/mysql-8.0.29-linux-glibc2.12-x86_64.tar -C /usr/local/mysql
-
修改文件夹名称
mv /usr/local/mysql/mysql-8.0.29-linux-glibc2.12-x86_64 /usr/local/mysql/mysql-8.0.29
-
创建data文件夹
mkdir -p /usr/local/mysql/mysql-8.0.29/data
-
创建mysql用户组
groupadd mysql
-
添加mysql用户
useradd -g mysql mysql
-
授权用户
chown -R mysql.mysql /usr/local/mysql/mysql-8.0.29
-
拷贝
mysql.server
至/etc/init.d/mysql
添加mysqld服务到系统cp /usr/local/mysql/mysql-8.0.29/support-files/mysql.server /etc/init.d/mysql chmod +x /etc/init.d/mysql chkconfig --level 2345 mysql on #设置开启自动启动
-
新建
/etc/my.cnf
vim /etc/my.cnf
加入下面内容
[client] default-character-set=utf8mb4 #password = your_password port = 3306 socket = /tmp/mysql.sock # The MySQL server [mysqld] #配置mysql的文件夹 和 mysql data目录 basedir=/usr/local/mysql/mysql-8.0.29 datadir=/usr/local/mysql/mysql-8.0.29/data default-storage-engine=INNODB character-set-server=utf8mb4 collation-server=utf8mb4_general_ci port = 3306 socket = /tmp/mysql.sock skip-external-locking key_buffer_size = 16K max_allowed_packet = 64M table_open_cache = 4 sort_buffer_size = 64K read_buffer_size = 256K read_rnd_buffer_size = 256K net_buffer_length = 2K thread_stack = 128K bind-address = 0.0.0.0 server-id = 1 # Uncomment the following if you want to log updates #log-bin=mysql-bin # binary logging format - mixed recommended #binlog_format=mixed [mysqldump] quick max_allowed_packet = 64M [mysql] default-character-set = utf8mb4 no-auto-rehash # Remove the next comment character if you are not familiar with SQL #safe-updates [myisamchk] key_buffer_size = 8M sort_buffer_size = 8M [mysqlhotcopy] interactive-timeout
-
初始化基础信息,最后一行后面会有个随机的初始密码保存下来一会登录要用(如果忘记了就删掉data重新初始化)
cd /usr/local/mysql/mysql-8.0.29/bin/ ./mysqld --initialize --user=mysql --basedir=/usr/local/mysql/mysql-8.0.29
记住这个默认密码
./mysqld_safe --user=mysql
这里如果报错
> ./mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory
执行:
sudo ln -s /usr/lib64/libtinfo.so.6.1 /usr/lib64/libtinfo.so.5
或者:
出现该问题首先检查该链接库文件有没有安装使用 `rpm -qa|grep libaio`命令进行核查
运行该命令后发现系统中无该链接库文件
使用命令,安装----》
yum install libaio-devel.x86_64
-
将mysql命令添加到服务
ln -s /usr/local/mysql/mysql-8.0.29/bin/mysql /usr/bin
-
连接数据库
./mysql -uroot -p **密码就是刚才记得默认密码**
-
修改数据库密码
*sql* ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '123456'; **刷新** flush privileges;
-
开放外网可以访问(如果不设置 用可视化工具连接数据库会报 1103错误)
*sql* use mysql; update user set host='%' where user='root'; *刷新* flush privileges;
-
开放端口限制(防火墙)
firewall-cmd --add-port=3306/tcp --permanent firewall-cmd --reload 注:阿里云,腾讯云等可以去平台直接开放端口 3306---默认
-
mysql新建一个库—新建一个xuexi 库
*sql* CREATE DATABASE xuexi;
-
mysql新建一个用户—新建一个用户wblx,并默认开通远程连接权限,密码为hdzs0879520
*sql* CREATE USER 'wblx'@'%' IDENTIFIED BY 'hdzs0879520';
-
给特定用户权限—限制了wblx用户只能看xuexi这个库下面的所有表
*sql* GRANT all PRIVILEGES ON xuexi.* TO 'wblx'@'%'; -------------- xuexi.* 指定库.指定表 *.* 即代表可以访问所有库的所有表(root)
-
常用命令
service mysql start #启动MySQL service mysql stop #停止MySQL service mysql restart #重启MySQL service mysql status #查看MySQL状态