linux下mysql 安装

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

posted @ 2020-03-19 23:32  worter  阅读(378)  评论(0编辑  收藏  举报