一、安装版本
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端口号