linux下离线安装mariadb(mysql)二进制包

背景:由于公司开发服务器是Ubuntu,我使用apt-get update命令发现报如下错误,初步预计是公司网络结构的原因,因此不能直接在线安装:

linux下离线安装mariadb(mysql)二进制包


netstat -tap | grep mysql      #检测是否已安装mysql

1)apt-get 或 yum 在线安装

2)二进制包方式离线安装:

下载地址:https://downloads.mariadb.org/

下图中两个版本均可,第一个版本需要glibc版本高于2.14,所以下载第二个就可以了

linux下离线安装mariadb(mysql)二进制包

rz      #上传二进制包到服务器
tar -xvzf mariadb-10.2.6-linux-x86_64.tar.gz   #解压

mv  mariadb-10.2.6-linux-x86_64   /usr/local/mariadb/   #移动目录

cd  /usr/local/mariadb   #切换目录

cp support-files/my-small.cnf /etc/my.cnf   #复制配置文件到etc目录,根据需要选择small.cnf、medium.cnf、large.cnf、huge.cnf配置文件

vi  /etc/my.cnf                #编辑配置文件,完成后esc  用:wq命令保存退出编辑模式

basedir = /usr/local/mariadb    # [mysqld]下添加basedir全局目录将默认的数据目录,日志目录,pid文件都放置在basedir目录下

-----初次安装需要添加mysql用户和组----------

groupadd mysql

useradd -r -g mysql -s /sbin/nologin mysql

chown -R mysql .         #当前目录赋予给mysql用户

chgrp -R mysql .          #当前目录赋予给mysql组

------------------------------------------------

./scripts/mysql_install_db --user=mysql   #初始化安装


-----------------------------mysql------------------------------------

mysqld --initialize --user=mysql   #mysql的话以这种方式安装,会给一个初始密码,如下图:

linux下离线安装mariadb(mysql)二进制包

登陆上去后提示

ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement.

完成以下三步设置即可

step 1: SET PASSWORD = PASSWORD('your new password');
step 2: ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;
step 3: flush privileges;

--------------------------------------------------------------------------


安装成功如下图:

linux下离线安装mariadb(mysql)二进制包

-------------------------安装过程中若出现错误缺少libaio1软件包,则需要安装此包--------------------------

Ubuntu下载地址:https://pkgs.org/download/libaio1 其中amd64是64位系统的,i386是32位系统的

linux下离线安装mariadb(mysql)二进制包

dpkg -i  libaio1_0.3.110-2_amd64.deb    #安装libaio1软件包

----------------------------------------------------------------------------------------------------------------------------------

chown -R root .          # 当前目录赋予给root用户
chown -R mysql data/     # data目录赋予给mysql用户

./mysqladmin -u root password  123456 #设置root密码

bin/mysqld_safe --user=mysql &    #启动

./mysql -u root -p      #登陆mariadb

grant all PRIVILEGES on test.* to [email protected]'%'  identified by '123456';  # 赋予root用户远程登陆test库的权限;test.*表示test库下所有表,%表示所有ip,可以具体设置某一个ip,远程登陆密码123456

./mysqladmin shutdown -u root -p    #停止


===========================分割线===========================

后来要装sonarqube,发觉它不支持mariadb,挖槽,吐血2分钟...。

修改过程如下:

mysql官网下载mysql社区版:https://dev.mysql.com/downloads/mysql/   选择通用linux版本

linux下离线安装mariadb(mysql)二进制包

./mysqladmin shutdown -u root -p     #输入密码停用原来的mariadb

tar -xvzf mysql-5.7.18-linux-glibc2.5-x86_64.tar.gz   #解压

mv  mysql-5.7.18-linux-glibc2.5-x86_64   /usr/local/mysql/   #移动目录

vi /ect/my.cnf

basedir = /usr/local/mysql   #[mysqld]下加这行设置mysql数据目录

skip-grant-tables    #[mysqld]下加这行跳过授权

./mysql -u root        #无需授权登陆

mysql>  update user set authentication_string=password('123456') where user='root' and host='localhost';       #修改root密码

mysql>  flush privileges;    #刷新权限使修改生效

mysql> exit;     #退出

./mysql -u root  -p     #输入密码登陆

mysql> set password=password('123456')  #再次设置密码 (不设置这行会报错:ERROR 1820 (HY000): You must reset your password using ALTER USER statement before executing this statement)

mysql> grant all PRIVILEGES on *.* to [email protected]'%'  identified by '123456';  # 赋予root用户远程访问所有库的权限

mysql> flush privileges;    #刷新权限使修改生效