一、环境:centos7

二、步骤:

  1、切换目录:

    /use/local

  2、创建mysql文件夹:

    mkdir mysql

  3、切换到mysql文件夹下:

    cd mysql

  4、下载mysql8.0安装包:

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

  5、解压mysql8.0安装包:

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

  6、重命名解压出来的文件夹,这里改成mysql-8:

    mv mysql-8.0.20-linux-glibc2.12-x86_64 mysql-8

  7、/use/local/mysql文件夹下创建data文件夹 存储文件:

    mkdir data

  8、分别创建用户组以及用户和密码(如果提示已存在说明之前有创建过了):

    groupadd mysql

    useradd -g mysql mysql

  9、授权刚刚新建的用户:

    chown -R mysql.mysql /usr/local/mysql/mysql-8

    chmod 750 /usr/local/mysql/data -R

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

    vim /etc/profile

    在最后一行加
    export PATH=$PATH:/usr/local/mysql/mysql-8/bin:/usr/local/mysql/mysql-8/lib
    (新手提示:添加完之后,换行,打出“:wq”,用来保存文件并退出)

  11、编辑my.cnf文件:

    vi /etc/my.cnf

    如下为mysql配置,复制粘贴到my.cnf文件中,打出“:wq”,用来保存文件并退出

   

[mysql]
    default-character-set=utf8mb4
    [client]
    socket=/var/lib/mysql/mysql.sock    [mysqld]
    #port=3306
    #server-id=3306
    user=mysql
    general_log = 1
    general_log_file= /var/log/mysql/mysql.log
    socket=/var/lib/mysql/mysql.sock
    basedir=/usr/local/mysql/mysql-8
    datadir=/usr/local/mysql/mysql-8/data
    log-bin=/usr/local/mysql/mysql-8/data/mysql-bin
    innodb_data_home_dir=/usr/local/mysql/mysql-8/data
    innodb_log_group_home_dir=/usr/local/mysql/mysql-8/data/
    character-set-server=utf8mb4
    lower_case_table_names=1
    autocommit=1
    default_authentication_plugin=mysql_native_password
    symbolic-links=0
    #skip-grant-tables #免密登录mysql    [mysqld_safe]
    log-error=/usr/local/mysql/mysql-8/data/mysql.log
    pid-file=/usr/local/mysql/mysql-8/data/mysql.pid    #
    # include all files from the config directory

 

  12、切换到/usr/local/mysql/mysql-8/bin目录下:

    cd bin

  13、初始化基础信息,得到数据库的初始密码(在/usr/local/mysql/mysql-8/bin目录下执行):

    ./mysqld --user=mysql --basedir=/usr/local/mysql/mysql-8 --datadir=/usr/local/mysql/data/ --initialize

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

    

CDH mysql8 cdh mysql8部署_数据库

 

 

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

  14、复制 mysql.server 文件,在/usr/local/mysql/mysql-8目录下执行:

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

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

  15、赋予权限:

    chown 777 /etc/my.cnf

    chmod +x /etc/init.d/mysql
    chmod +x /etc/init.d/mysqld

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

    mkdir /var/lib/mysql

    然后再赋予权限:

    chown -R mysql:mysql /var/lib/mysql/

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

    service mysql start

  ps:

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

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

  1、登录:

    mysql -u root -p

  2、输入密码:

    第二步保存的密码

    如忘记密码则去掉my.cnf文件中配置项   #skip-grant-tables  前的#号;重启mysql服务:

    service mysql restart

    停止mysql服务:

    service mysql stop

    mysql服务状态:

    service mysql status

  3、登录成功,修改密码:

    使用mysql:

    use mysql;

    修改密码:

    ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码';

    执行flush privileges; 使密码生效:

    flush privileges;

    再修改远程连接并生效:

    update user set host='%' where user='root';

    执行flush privileges; 使密码生效:

    flush privileges;

 

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

  

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

1)创建用户(名称随意,这里的用户名称为mysql)并可以远程访问
CREATE user 'mysql'@'%';
#修改密码
alter user 'mysql'@'%' identified with mysql_native_password by 'tcl.2021';

2)创建新的数据库
#create database 数据库名 default character set utf8mb4 collate utf8mb4_unicode_ci;

3)把新的数据库授权给新用户
#将test库的所有权限赋予mysql用户
grant all privileges on test.* to "mysql"@"%";
grant all privileges on test.* to "tcl"@"%";

4)、刷新权限
flush privileges;

 

遇见问题:

初始化基本信息报错:

执行命令:./mysqld --user=mysql --basedir=/usr/local/mysql/mysql-8 --datadir=/usr/local/mysql/data/ --initialize

错误:./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