当前位置:   article > 正文

Linux下安装MySQL 8.0_linux mysql8.0安装

linux mysql8.0安装

1、切换到/usr/soft

注:本人比较喜欢将需要安装的软件放到/usr/soft下面,如果没有soft文件夹可以,创建一个 mkdir soft 

cd /usr/soft

2、下载mysql8.0安装包

wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.20-linux-glibc2.12-x86_64.tar.xz

如果下载不了可以通过此链接下载:mysql8.0.20安装包下载

3、解压mysql8.0安装包

tar -xvJf mysql-8.0.20-linux-glibc2.12-x86_64.tar.xz

4、 重命名解压出来的文件夹,这里改成mysql8.0.20

mv mysql-8.0.20-linux-glibc2.12-x86_64 mysql8.0.20

5、在/usr/soft/mysql8.0.20文件夹里面创建data文件夹,用来存放数据库文件

mkdir data

6、分别创建MySQL的用户组和用户名(如果提示已存在说明之前有创建过了)

  1. #创建用户组
  2. groupadd mysql
  3. #创建用户
  4. useradd -g mysql mysql

7、授权刚刚新建的用户

  1. #-R 处理指定目录以及其子目录下的所有文件
  2. chown -R mysql.mysql /usr/soft/mysql8.0.20
  3. chmod 750 /usr/soft/mysql8.0.20/data -R

 注:需要了解chmod 750的意思可以查看另一篇博客:linux chmod 755 ,750,777_feritylamb的博客-CSDN博客

8、配置环境,编辑/etc/profile文件

vim /etc/profile

在最后一行加
export PATH=$PATH:/usr/soft/mysql8.0.20/bin:/usr/soft/mysql8.0.20/lib,然后按ESC,输入:wq回车保存

别忘了刷新配置文件:source /etc/profile

9、编辑my.cnf文件

vim /etc/my.cnf

 按下面复制进去就好了,#号开头的不用管,一样,添加完之后,换行,打出“:wq”,用来保存文件并退出

  1. [mysql]
  2. default-character-set=utf8mb4
  3. socket=/var/lib/mysql/mysql.socket
  4. [client]
  5. port=3306
  6. socket=/var/lib/mysql/mysql.socket
  7. [mysqld]
  8. port=3306
  9. server-id=3306
  10. user=mysql
  11. general_log=1
  12. general_log_file=/var/log/mysql/mysql.log #如果系统中不存在需要自己创建
  13. socket=/var/lib/mysql/mysql.socket
  14. basedir=/usr/soft/mysql8.0.20
  15. datadir=/usr/soft/mysql8.0.20/data
  16. log-bin=/usr/soft/mysql8.0.20/data/mysql-bin
  17. innodb_data_home_dir=/usr/soft/mysql8.0.20/data
  18. innodb_log_group_home_dir=/usr/soft/mysql8.0.20/data/
  19. character-set-server=utf8mb4
  20. lower_case_table_names=1
  21. autocommit=1
  22. symbolic-links=0
  23. default_authentication_plugin=mysql_native_password
  24. [mysqld_safe]
  25. log-error=/usr/soft/mysql8.0.20/data/mysql.log
  26. pid-file=/usr/soft/mysql8.0.20/data/mysql.pid

10、切换到/usr/soft/mysql8.0.20/bin目录下 

cd bin

11、 初始化基础信息,得到数据库的初始密码(在/usr/soft/mysql8.0.20/bin目录下执行)

./mysqld --user=mysql --basedir=/usr/soft/mysql8.0.20 --datadir=/usr/soft/mysql8.0.20/data/ --initialize

注:
命令执行时会有 mysqld: File '/var/log/mysql/mysql.log' not found (OS errno 13 - Permission denied) 的错误,这个错误处理的方式是,首先查看/var/log/mysql文件夹是否存在,如果不存在则创建一个,然后将创建的文件夹授权给mysql账户(命令:chown -R mysql:mysql /var/log/mysql/

执行命令提示(mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory)这个错误,是由于内容缺少了libaio.so.1的依赖库,所以进行安装

 yum install -y libaio  

安装成功以后即可正常启动了。

  1. chown -R mysql.mysql /var/log/mysql
  2. chmod 750 /var/log/mysql -R

如图,复制出红框的初始密码,保存到本地,后面需要使用到

注意:如果因为路径等各种问题需要重新初始化的,需要清空上面创建的data文件,在data所在的目录下使用 rm -rf data 命令 

12、复制 mysql.server 文件,在/usr/soft/mysql8.0.20目录下执行

  1. cp -a ./support-files/mysql.server /etc/init.d/mysql
  2. cp -a ./support-files/mysql.server /etc/init.d/mysqld

13、赋予权限

  1. chown 777 /etc/my.cnf
  2. chmod +x /etc/init.d/mysql
  3. chmod +x /etc/init.d/mysqld

14、检查一下/var/lib/mysql是否存在,否则进行创建

  1. mkdir /var/lib/mysql
  2. #再赋予权限
  3. chown -R mysql:mysql /var/lib/mysql/

15、启动数据库,有SUCCESS字眼说明MySQL安装完成

service mysql start 

 注意:如果发现启动失败,可以先查看data里面的mysql.log,如果有提示3306这样的字样,第一个想到的应该是端口被占用,使用lsof -i:端口号,查看是哪个PID(进程号)占用了该端口,然后使用kill PID(进程号)杀掉进程,重新执行service mysql start

修改密码,并设置远程连接(为了可以在别的机器下面连接该mysql)

16、修改数据库root账号的密码,并设置可以远程访问(因为root默认是不能远程访问的)

  1. mysql -uroot -p 回车后会提示输入root的密码
  2. #修改数据库root账号的密码,并设置可以远程访问(因为root默认是不能远程访问的)
  3. ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码';
  4. #选择数据库
  5. use mysql;
  6. #再修改远程连接并生效
  7. update user set host='%' where user='root';
  8. #执行提交命令,搞定!
  9. flush privileges;

 17、设置开机启动

 (1)进入mysql安装目录

cd /usr/soft/mysql8.0.20

(2)我们设置开机启动需要将mysql.server 文件复制到 /etc/rc.d/init.d/ 目录下mysql 文件 我们的mysql.server 文件一般都在安装的根目录下的 support-files 目录下 

cp ./support-files/mysql.server /etc/rc.d/init.d/mysql

(3) 复制成功后我们需要给赋予权限

chmod +x /etc/init.d/mysql

(4) 添加为服务

chkconfig --add mysql

 (5)查看服务列表

chkconfig --list

看到3、4、5状态为开或者为 on 则表示成功。 如果是 关或者 off 则执行一下 

chkconfig --level 345 mysqld on

最后reboot重启计算机试试效果 

 我在启动的时候会提示,ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) 的错误,原因时在/etc/my.cnf文件中【mysql】中没有加上  socket=/var/lib/mysql/mysql.socket  ,导致的最后加上这个语句,然后重启就解决问题了。

最后就可以使用root账号去登录mysql了。如果有遇到问题的小伙伴评论留言,文中如有遗漏错误,欢迎指正。 

题外:
给mysql创建新的数据库用户并授予权限

  1. 1)创建用户(名称随意,这里的用户名称为mysql)并可以远程访问
  2. CREATE user 'mysql'@'%';
  3. #修改密码
  4. alter user 'mysql'@'%' identified with mysql_native_password by 'tcl.2021';
  5. 2)创建新的数据库
  6. #create database 数据库名 default character set utf8mb4 collate utf8mb4_unicode_ci;
  7. 3)把新的数据库授权给新用户
  8. #将test库的所有权限赋予mysql用户
  9. grant all privileges on test.* to "mysql"@"%";
  10. grant all privileges on test.* to "tcl"@"%";
  11. 4)、刷新权限
  12. flush privileges;

mysql8.0版本的数据库需要用nacicat连接时,建议使用最新版本的nacicat,我使用的11.1.13

版本无法连接,但是使用navicat16.0.11版本可以连接

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/酷酷是懒虫/article/detail/923471
推荐阅读
相关标签
  

闽ICP备14008679号