一、安装版本
CentOS 8 MySQL 8.18
二、环境配置
- 检测系统是否自带mysql
rpm -qa|grep mysql
- 如果有,进行卸载
rpm -e --nodeps mysql名
2. 检测系统是否自带 mariadb
rpm -qa|grep mariadb
- 如果有,进行卸载
rpm -e --nodeps mariadb名
3. 用连接工具将下载的 mysql-8.0.18-linux-glibc2.12-x86_64.tar.xz 上传到linux服务器的/usr/local/tmp
目录下面
4. 解压mysql文件
xz -d ***.tar.xz #比较大,等待一会儿
tar -xvf ***.tar
5. 移动文件夹并且进行改名
cp -r mysql-8.0.18-linux-glibc2.12-x86_64 /usr/local/mysql
三、安装MySQL
- 检查mysql组和用户是否存在,如果没有则创建
cat /etc/group|grep mysql
groupadd mysql #创建一个新的mysql组
useradd -r -g mysql mysql
# useradd -r 参数表示mysql用户是系统用户,不可用于登录系统。
# useradd -g 参数表示把mysql用户添加到mysql用户组中。
- 创建data文件夹
mkdir /usr/local/mysql/data
- 将/usr/local/mysql的所有者及所属组改为mysql
chown -R mysql.mysql /usr/local/mysql
- 在/usr/local/mysql/support-files目录下创建my_default.cnf
vim /usr/local/mysql/support-files/my_default.cnf
- 写入以下内容
[mysqld]
# 设置3306端口
port=3306
# 设置mysql的安装目录
basedir=/usr/local/mysql
# 设置mysql数据库的数据的存放目录
datadir=/usr/local/mysql/data
# 允许最大连接数
max_connections=200
# 允许连接失败的次数。
max_connect_errors=10
# 服务端使用的字符集默认为utf8mb4
character-set-server=utf8mb4
# 设置时区为东八区
default-time-zone='+08:00'
# 创建新表时将使用的默认存储引擎
default-storage-engine=INNODB
# 默认使用“mysql_native_password”插件认证
#mysql_native_password 可以使用8.0新版认证模式,注销下面一行,如果使用5.7认证方式,不注销
default_authentication_plugin=mysql_native_password
[mysql]
# 设置mysql客户端默认字符集
default-character-set=utf8mb4
[client]
# 设置mysql客户端连接服务端时默认使用的端口
port=3306
default-character-set=utf8mb4
- 拷贝文件并改名,如果第一次安装,不会有,如果已经安装过,是否覆盖,是
cp /usr/local/mysql/support-files/my_default.cnf /etc/my.cnf
- 初始化mysql,并记住临时密码,进入
mysql
根目录执行一下命令:
./bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data
- 临时密码为: UAP/d!eU-4x6
- 备注:如果报错:./bin/mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or 就安装libaio,如果没有则跳过
安装libaio命令:yum install libaio
- 进入
mysql
根目录,把启动脚本放到开机初始化目录
cp support-files/mysql.server /etc/init.d/mysql
- 启动mysql
service mysql start
四、进入mysql修改密码
- 登录mysql
mysql -uroot -p
- 如果报以下错误,则添加映射可以解决
- 添加映射
ln -s /usr/local/mysql/bin/mysql /usr/bin
- 如果报错: mysql: error while loading shared libraries: libtinfo.so.5: cannot open shared object file: No such file or directory
- 解决方法
先查找文件: libtinfo 命令: find /usr/lib64/ -name "libtinfo*"
添加映射: ln -s /usr/lib64/libtinfo.so.6.1 /usr/lib64/libtinfo.so.5 //将libtinfo.so.6.1映射为/libtinfo.so.5
- 修改密码
#修改密码
ALTER USER 'root'@'localhost' IDENTIFIED BY '新密码';
FLUSH PRIVILEGES; -- 刷新权限
五、添加用户并且赋予权限
- 创建用户
-- 创建 test 用户及密码 '123456',并且可以远程访问 '%'
mysql> create user 'test'@'%' identified by '123456';
- 删除用户
mysql> drop user 'aaa'@'%'; -- 删除aaa用户;
- 刷新权限
mysql> flush privileges;
- 设置用户对一个数据库有所有权限
grant all on 数据库名.* to 用户名;
- 设置用户对所有数据库的所有权限
grant all on *.* to 用户名;
- 关闭用户的远程访问权限
use mysql; -- 进入mysql数据库
update user set host = "localhost" where user = "test" and host= "%"; -- 修改tset的host的%为localhost
flush privileges; -- 刷新权限
- 查看用户是否可以远程访问
use mysql; -- 进入mysql数据库
select user , host from user; -- 查询用户和是否可以远程访问,%代表可以远程访问,localhost代表只能本地访问
六、常用mysql命令
mysql> show global variables like 'port'; --查看mysql端口号