关于Linux安装mysql问题

使用rpm安装mysql相关包后 执行 mysqld --initialize初始化mysql总是提示mysqld: error while loading shared libraries: libssl.so.1.1: cannot open shared object file: No such file or directory

Linux安装Mysql5.7完整版

你那个时openssl库的问题,百度一搜重设下openssl库不就完事了,非来提问

这是缺少numactl,这个时候如果是Centos就yum -y install numactl就可以解决这个问题了.
ubuntu的就sudo apt-get install numactl就可以解决这个问题了

操作步骤参考如下:
1.以root用户登录待安装的服务器,检查系统中是否安装过MySQL。# rpm -qa|grep -i mysql

如果未安装过MySQL,系统无屏显信息。

如果已安装过MySQL,系统显示已安装的MySQL安装包信息:
mysql-community-libs-5.7.16-1.sles11
libmysqlclient_r15-5.0.67-13.20.1
mysql-community-common-5.7.16-1.sles11
libqt4-sql-mysql-4.6.2-1.6.11

依次执行rpm -e --nodeps Package_name命令删除MySQL的各个安装包。其中,Package_name为上述屏显信息中的各个包名。

2.上传软件包并解压。a.以root用户通过sftp/ftp工具上传软件包mysql-5.7.20-linux-glibc2.12-x86_64.tar.gz到/opt目录 。
b.进入opt目录,并解压缩软件包。# cd /opt/

tar -xzvf mysql-5.7.20-linux-glibc2.12-x86_64.tar.gz

解压之后删除/opt目录下的mysql安装包:

rm -f mysql-5.7.20-linux-glibc2.12-x86_64.tar.gz

c.将解压后目录改名为mysql。# mv mysql-5.7.20-linux-glibc2.12-x86_64 mysql

3.安装和初始化MySQL。a.创建用户和用户组,并进行授权。i.添加oinstall组。# groupadd oinstall

ii.添加mysql用户。# useradd -d /home/mysql -s /bin/bash -g oinstall -m mysql

iii.把mysql目录授权给mysql用户。# chown -R mysql:oinstall /opt/mysql/

iv.创建mysql-data目录及子目录tmp。# mkdir /opt/mysql-data

mkdir /opt/mysql-data/tmp

mkdir /opt/mysql-data/log

v.把mysql-data目录及tmp子目录授权给oinstall组中的mysql用户。# chown -R mysql:oinstall /opt/mysql-data

vi.mysql-data目录的所属群组修改为oinstall。# chgrp -R oinstall /opt/mysql-data

b.新建并编辑my.cny文件。i.在mysql目录下新建并编辑my.cnf文件。# vi /opt/mysql/my.cnf

输入i进入编辑模式,修改文件内容为如下所示:
[mysqld]

basedir为mysql的安装家目录。

basedir = /opt/mysql

datadir为mysql的数据包。

datadir = /opt/mysql-data/workdbs

tmpdir为mysql的数据临时目录。

tmpdir = /opt/mysql-data/tmp/

port为mysql对外提供服务的端口。

port = 3306
#server-id = 100

socket为mysql的socket连接文件路径

socket =/opt/mysql/lib/mysql.sock

使MySQL不区分表名大小写

lower_case_table_names=1

设置字符集为UTF-8

character-set-server=utf8

设置MySQL模式

sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES,STRICT_ALL_TABLES

log file

log-error=/opt/mysql-data/log/mysql_3306.log
[mysql]

设置字符集为UTF-8

default-character-set=utf8

修改完成后按Esc退出编辑模式,执行:wq!保存并退出,然后执行如下命令,修改my.cnf文件的属主:

chown mysql:oinstall /opt/mysql/my.cnf

ii.拷贝my.cnf文件到etc目录下(若etc目录下有则替换)。# cp -fr /opt/mysql/my.cnf /etc/my.cnf

c.修改系统配置文件profile。i.编辑etc目录下的“profile”文件。# vi /etc/profile

输入i进入编辑模式,在文件末尾添加如下内容:
export PATH=/opt/mysql/bin:$PATH
export PATH=$PATH:/etc/init.d

添加完成后按Esc退出编辑模式,执行:wq!保存并退出。

ii.重新加载etc目录下的profile文件。# source /etc/profile

d.将mysql.server复制到/etc/init.d/ 。# cd /opt/mysql

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

e.初始化mysql。# cd /opt/mysql

./bin/mysqld --initialize --user=mysql --basedir=/opt/mysql/ --datadir=/opt/mysql-data/workdbs

命令执行后,如无错误,不会有显示信息,查看日志文件“/opt/mysql-data/log/mysql_3306.log”,获取临时密码。

cat /opt/mysql-data/log/mysql_3306.log

2018-03-17T08:10:25.707388Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2018-03-17T08:10:25.707430Z 0 [Warning] 'NO_ZERO_DATE', 'NO_ZERO_IN_DATE' and 'ERROR_FOR_DIVISION_BY_ZERO' sql modes should be used with strict mode. They will be merged with strict mode in a future release.
2018-03-17T08:10:25.707434Z 0 [Warning] 'NO_AUTO_CREATE_USER' sql mode was not set.
2018-03-17T08:10:26.864589Z 0 [Warning] InnoDB: New log files created, LSN=45790
2018-03-17T08:10:27.068801Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
2018-03-17T08:10:27.154126Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: a6a8df86-29ba-11e8-9a31-286ed48958fb.
2018-03-17T08:10:27.161747Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.
2018-03-17T08:10:27.703898Z 0 [Warning] CA certificate ca.pem is self signed.
2018-03-17T08:10:28.083190Z 1 [Note] A temporary password is generated for root@localhost: Ro5EkYogC%rg

获取临时密码,如:Ro5EkYogC%rg。

f.创建软连接。i.将mysql的安装目录软连接到local下面。# ln -s /opt/mysql /usr/local/mysql

ii.将mysql.sock文件软连接到tmp下面# ln -s /opt/mysql/lib/mysql.sock /tmp/mysql.sock
ln -s /data/mysql/mysql-5.7.21/lib/mysql.sock /tmp/mysql.sock

4.注册并设置mysql.server为开机自启动。# systemctl enable mysql.server.service

按照提示信息继续执行如下命令:

chkconfig mysql on

5.启动并修改初始密码。a.在“/opt/mysql/support-files”目录下启动MySQL。# cd /opt/mysql/support-files

mysql.server start

b.查看MySQL状态。# mysql.server status

系统显示如下类似信息表示MySQL状态正常:
MySQL running (70442) done

c.在“opt/mysql/bin”目录下执行以下命令登录MySQL。# cd /opt/mysql/bin

mysql -u root -p

按照提示信息输入记录的临时密码。
Enter Password:

登录成功后系统显示如下类似信息:
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.21-enterprise-commercial-advanced
Copyright (c) 2000, 2018, 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>

d.修改root用户密码。> set password=password('Password');

其中,单引号中的Password由用户自定义。

e.赋予任何主机访问数据的权限。> grant all privileges on . to 'root'@'%' identified by 'Password' with grant option;

其中,单引号中的Password由用户自定义。

f.使修改生效并使用数据库。> flush privileges;

use mysql;

g.查看当前用户。> select host,user from user;

系统显示如下类似信息,表示数据库已正常安装和运行。
+-----------+-----------+
| host | user |
+-----------+-----------+
| % | root |
| localhost | mysql.sys |
| localhost | root |
+-----------+-----------+
3 rows in set (0.01 sec)

h.退出MySQL数据库。> exit

6.将/opt/mysql/bin/目录下的可执行程序都拷贝到/usr/bin目录下,方便后续执行这些命令(可选)。# cp /opt/mysql/bin/* /usr/bin

7.用Navicat Primium工具测试连接mysql客户端,以mysql安装在的主机IP和账号root/密码登录,连接成功即可。