标签:编译安装 Mysql
什么是通用二进制格式?
已经编译进行过编译的软件包,下载到本机直接解压到特定的目录下就可以使用的格式.
1.查询本地是否安装mysql数据库相关的软件包(卸载之)
rpm -qa "mysql*" (centos6)
rpm -qa "mariaDB*" (cetos7)
2.mariadb.org下载源码二进制包带有linux字样的已经编译过的包:
mariadb-10.2.12-linux-x86_64.tar.gz(大小440M左右因为已经编译过)
3. 准备用户
getent passwd mysql 查询passwd是否有mysql用户
useradd -r mysql -s /sbin/nologin 创建mysql系统用户
[root@centos7 ~ 13]#id mysql
uid=990(mysql) gid=305(mysql) groups=305(mysql)
生产环境建议置后一个版本至少.
4.解压mariadb-10.2.12-linux-x86_64.tar.gz
4-1. tar xvf mariadb-10.2.12-linux-x86_64.tar.gz -C /usr/local/
注意:解压目录指定,因为这是已经编译过的源码包所以路径很重要需要解压到/usr/local/下
4-2.需要改名因为编译之前的目录叫mysql;
建议创建软连接:
ln -s mariadb-10.2.12-linux-x86_64/ mysql
5.修改文件权限默认没有属主属组:(可以不做修改)
chown -R mysql.mysql mysql/
6.导出环境变量:
echo ‘PATH=/usr/local/mysql/bin:$PATH‘ > /etc/profile.d/mysql.sh
cat /etc/profile.d/mysql.sh
. /etc/profile.d/mysql.sh (重读配置文件)
7.准备数据目录;建议使用逻辑卷
7-1.创建逻辑卷:
fdiak /dev/sda
7-2.同步磁盘:
partprobe (6 使用pertx)
7-3.创建PV物理卷:
pvcreate /dev/sda6
7-4. 创建卷组:
vgcreate vg0-mysqldata /dev/sda6 -s 16M
7-5.查看卷组:
vgdisplay
7-6.创建LVM
lvcreate -n lv_mysqldata -l 100%FREE vg0mysqldata
7-7.创建逻辑卷的文件系统:
mkfs.xfs /dev/vg0mysqldata/lv_mysqldata
8.创建挂载点并且挂载添加/etc/fstab条目(请注意当前所在的工作目录.我当前的路径是在/usr/local/mysql/bin)
mkdir -pv /data/mysqldb
echo ‘ UUID=98833275-08ee-446f-b888-3e03557deedf /data/mysqldb xfs defaults 0 0‘ >> /etc/fstab (建议别这么添加清空了这个文件就尴尬了)
mount -a 重读/etc/fsatb
9.这连个就是mysql的数据库目录了安全起见建议修改权限为770
chmod 770 /data/mysqldb/
10.初始化数据库:
cd scripts/
scripts/mysql_install_db --datadir=/data/mysqldb --user=mysql
注意:这个脚本一定要在它的上一级目录执行否则会报错
11.由于默认的配置文件过于简陋而且数据库路径也不对,可参考/usr/local/mysql/support-files/目录下以.cnf结尾的模版配置文件.
11-1.cp my-huge.cnf /etc/my.cnf (覆盖目标文件)
修改如下:
12.运行/usr/local/mysql/mysql-server 服务脚本
cp mysql.server /etc/init.d/mysqld 复制并改名mysqld
chkconfig --add mysqld 添加到系统脚本开机启动
13.启动服务:
service mysqld start
源码安装结束
14.查看是否有错误信息
15.查看端口3306
ss -tnl
16.mysql安装完成默认没有密码需要运行一个安全脚本:
. /mysql_secure_installation (交互式设置密码及删除匿名用户)
[root@centos7 /usr/local/mysql/bin 178]# ./mysql_secure_installation
NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!
In order to log into MariaDB to secure it, we‘ll need the current
password for the root user. If you‘ve just installed MariaDB, and
you haven‘t set the root password yet, the password will be blank,
so you should just press enter here.
Enter current password for root (enter for none): 输入root旧口令(没有直接回车)
OK, successfully used password, moving on...
Setting the root password ensures that nobody can log into the MariaDB
root user without the proper authorisation.
Set root password? [Y/n] y 是否设置root口令
New password: 密码
Re-enter new password: 确认密码
Password updated successfully!
Reloading privilege tables..
... Success!
By default, a MariaDB installation has an anonymous user, allowing anyone
to log into MariaDB without having to have a user account created for
them. This is intended only for testing, and to make the installation
go a bit smoother. You should remove them before moving into a
production environment.
Remove anonymous users? [Y/n] y 删除匿名用户
... Success!
Normally, root should only be allowed to connect from ‘localhost‘. This
ensures that someone cannot guess at the root password from the network.
Disallow root login remotely? [Y/n] n 是否禁用root远程等
... skipping.
By default, MariaDB comes with a database named ‘test‘ that anyone can
access. This is also intended only for testing, and should be removed
before moving into a production environment.
Remove test database and access to it? [Y/n] y 是否删除test测试数据库(随机附带的测试数据库)
- Dropping test database...
... Success!
- Removing privileges on test database...
... Success!
Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.
Reload privilege tables now? [Y/n] y 是否重新加载并且生效
... Success!
Cleaning up...
All done! If you‘ve completed all of the above steps, your MariaDB
installation should now be secure.
Thanks for using MariaDB!
启动服务:
service mysqld start
本地安装mysql的Mysql-client 命令行测试连接
标签:编译安装 Mysql
原文地址:http://blog.51cto.com/37003839/2088120