1.下载mysql
在官网:http://dev.mysql.com/downloads/mysql/ 中,选择以下版本的mysql下载:
下载文件:mysql-8.0.19-linux-glibc2.12-x86_64.tar.xz
2.解压问题
[root@mysql# xz -d mysql-8.0.19-linux-glibc2.12-x86_64.tar.xz 生成了.tar文件
[root@mysql#ar -xvf mysql-8.0.19-linux-glibc2.12-x86_64.tar -c /usr/local/mysql
将文件解压到/usr/local/mysql下
3.创建数据库目录
[root@mysql#mkdir --p /data/mysql
4.新建mysql用户和用户组
[root@mysql#groupadd mysql
[root@mysql#useradd -r -s /sbin/nologin -g mysql mysql -d /usr/local/mysql
5.改变数据库程序目录及文件、数据库存储目录的所有者、所属组
[root@mysql#chown -R mysql /usr/local/mysql 递归每一个目录和文件,并修改所有者为mysql
[root@mysql#chgrp -R mysql /usr/local/mysql 递归每一个目录和文件,并修改所属组为mysql
[root@mysql#chown -R mysql /data/mysql 递归每一个目录和文件,并修改所属组为mysql
6.初始化数据库
[root@mysql#cd /usr/local/mysql
[root@mysql mysql]# bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql
--user为指定的系统用户,-basedir为指定程序的源目录,-datadir为指定数据的存储目录
在执行过错中会遇到提示未包含某些文件的错误,笔者遇到的几个错误如下:
bin/mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory
报错:上述报错信息说明,没有libaio.so文件。
[root@mysql mysql]# yum install -y libaio 安装libaio
[root@mysql mysql]# bin/mysqld --initialize --user=mysql --basedir=/usr/localmysql --datadir=/data/mysql
bin/mysqld: error while loading shared libraries: libnuma.so.1: cannot open shared object file: No such file or directory
报错:上述报错信息说明,没有libnuma.so文件
[root@mysql mysql]# yum list numactl 安装libnuma
注意:在安装过错中若--basedir指定错误也会报错,这是时候子在/data/mysql里面已经初始化了一些文件。
[root@mysql mysql]# ls
‘#innodb_temp‘ client-cert.pem ib_logfile1 performance_schema server-key.pem
auto.cnf client-key.pem ibdata1 private_key.pem sys
ca-key.pem ib_buffer_pool mysql public_key.pem undo_001
ca.pem ib_logfile0 mysql.ibd server-cert.pem undo_002
删除/data/mysql文件,重新初始化就好了。
[root@mysql mysql]# bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql
2020-03-17T07:33:52.261232Z 0 [System] [MY-013169] [Server] /usr/local/mysql/bin/mysqld (mysqld 8.0.19) initializing of server in progress as process 168
2020-03-17T07:33:56.724964Z 5 [Note] [MY-010454] [Server] A temporary password is generated for root@localhost: &5.tj(#sjB<u
看到以上信息,表示已经初始化成功了,此时记住 &5.tj(#sjB<u 这个是mysql的管理员的初始密码,第一次进入会用到。
7.设置ssl_rsa.
[root@mysql mysql]# bin/mysql_ssl_rsa_setup --datadir=/data/mysql
2020-03-17 07:35:00 [ERROR] Could not find OpenSSL on the system
报错:提示系统安装OpenSSL.
[root@mysql mysql]# yum install openssl
8.将mysql服务链接到/etc/init.d下,系统重启后自动启动服务。
[root@mysql mysql]# cd support-files/
[root@mysql support-files]# ls
mysql-log-rotate mysql.server mysqld_multi.server
[root@mysql support-files]# ln -s /etc/init.d/mysql /usr/local/mysql/mysql.server
9.手动启动mysql服务
[root@mysql mysql]# /etc/init.d/mysql start
Starting MySQL.Logging to ‘/data/mysql/mysql.err‘.
.....
.......... SUCCESS!
启动成功啦。
10.修改mysql的root密码
[root@mysql mysql]# mysql -h localhost -uroot -p
bash: mysql: command not found
报错:提示没有这个命令,是因为在环境变量中没有这个命令
将程序链接到/usr/bin下。
[root@mysql mysql]# ln -s /usr/local/mysql/bin/mysql /usr/bin
[root@mysql mysql]# mysql -u root -p
mysql: error while loading shared libraries: libtinfo.so.5: cannot open shared object file: No such file or directory
报错:提示没有libtinfo.so.5文件。
笔者的操作系统是Centeos 7.7,默认为libtinfo.so.6.1,此处的解决办法是,建立一个链接到libtinfo.so.5即可。
[root@mysql lib64]# ls -n libtinfo.so.*
lrwxrwxrwx 1 0 0 24 Mar 17 07:49 libtinfo.so.5 -> /usr/lib64/libtinfo.so.5
lrwxrwxrwx 1 0 0 15 May 11 2019 libtinfo.so.6 -> libtinfo.so.6.1
-rwxr-xr-x 1 0 0 208616 May 11 2019 libtinfo.so.6.1
[root@mysql lib64]# ln -s libtinfo.so.6.1 libtinfo.so.5
将6.1连接为5
[root@mysql bin]# mysql -u root -p
Enter password: 此处输入的是初始化的密码
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 20
Server version: 8.0.19
Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type ‘help;‘ or ‘\h‘ for help. Type ‘\c‘ to clear the current input statement.
mysql> use
ERROR:
USE must be followed by a database name
mysql> use mysql;
ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement. 提示必须先修改密码
mysql> ALTER USER USER() IDENTIFIED BY ‘123456‘;
Query OK, 0 rows affected (0.12 sec)
设置密码
参考:https://www.cnblogs.com/fanshudada/p/9781794.html
&5.tj(#sjB<u
原文:https://www.cnblogs.com/worter991/p/12512623.html