背景:由于公司开发服务器是Ubuntu,我使用apt-get update命令发现报如下错误,初步预计是公司网络结构的原因,因此不能直接在线安装:
netstat -tap | grep mysql #检测是否已安装mysql
1)apt-get 或 yum 在线安装
2)二进制包方式离线安装:
下载地址:https://downloads.mariadb.org/
下图中两个版本均可,第一个版本需要glibc版本高于2.14,所以下载第二个就可以了
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的话以这种方式安装,会给一个初始密码,如下图:
登陆上去后提示
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;
--------------------------------------------------------------------------
安装成功如下图:
-------------------------安装过程中若出现错误缺少libaio1软件包,则需要安装此包--------------------------
Ubuntu下载地址:https://pkgs.org/download/libaio1 其中amd64是64位系统的,i386是32位系统的
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 root@'%' 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版本
./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 root@'%' identified by '123456'; # 赋予root用户远程访问所有库的权限
mysql> flush privileges; #刷新权限使修改生效