一、搭建数据库****
1 ) 搭建mysql数据库 centos6下****
1.安装 ncurses-devel和cmake包
yum -y install ncurses-devel
tar xf cmake-2.8.6.tar.gz -C /usr/src
cd /usr/src/cmake-2.8.6/
./configure && gmake && gmake install
2.源码编译及安装
useradd -M -s /sbin/nologin mysql
tar xf mysql-5.5.22.tar.gz -C /usr/src
cd /usr/src/mysql-5.5.22
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DSYSCONFDIR=/etc -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_EXTRA_CHARSETS=all && make && make install
3.优化
修改mysql安装目录的属主属组
chown -R mysql:root /usr/local/mysql
创建修改my.cnf配置文件
cp support-files/my-medium.cnf /etc/my.cnf
添加系统服务
cp support-files/mysql.server /etc/init.d/mysqld
chmod +x /etc/init.d/mysqld
[root@mysql mysql-5.5.22]# chkconfig mysqld --add
[root@mysql mysql-5.5.22]# chkconfig mysqld --list
添加 MySQL 命令执行的路径到 PATH 环境变量
echo "export PATH=$PATH:/usr/local/mysql/bin" >>/etc/profile
[root@mysql ~]# source /etc/profile
[root@mysql ~]# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/usr/local/mysql/bin
执行 mysql_install_db 脚本初始化数据库
/usr/local/mysql/scripts/mysql_install_db --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/
2) MySQL 5.7.26 二进制版本安装****
tar xf mysql-5.7.26-el7-x86_64.tar.gz -C /usr/local/
cd /usr/local
ln -s mysql-5.7.26-el7-x86_64/ mysql
useradd -M -s /sbin/nologin mysql
vi /etc/profile
export PATH=/usr/local/mysql/bin:$PATH
echo 'export PATH=/usr/local/mysql/bin:$PATH' >> /etc/profile
source /etc/profile
mysql -V
mkdir /data/ 在工作中data目录经常需要单独挂载一块硬盘
mkfs.xfs /dev/sdb centos6下的文件系统是ext4格式mkfs.ext4,centos7下的文件系统是xfs,格式化用的是mkfs.xfs,查看是否格式化成功用的blkid
mount /dev/sdb /data/
echo "mount /dev/sdb /data/" >> /etc/rc.local
chmod +x /etc/rc.local centos7下rc.local 默认没有执行权,需要手动增加
3) 数据初始化
mkdir -p /data/mysql/data
chown -R mysql.mysql /data
mysqld --initialize-insecure --user=mysql --basedir=/usr/local/mysql --datadir=/data/mysql/data
4) 配置文件的准备****
cat >/etc/my.cnf <<EOF
[mysqld]
user=mysql
basedir=/usr/local/mysql
datadir=/data/mysql/data
socket=/tmp/mysql.sock
server_id=2
port=3306
[mysql]
socket=/tmp/mysql.sock
EOF
5) 启动MySQL数据库****
cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
/etc/init.d/mysqld start
用systemd 注意: sysv方式启动过的话,需要先提前关闭,才能以下方式登录
cat >/usr/lib/systemd/system/mysql.service<<EOF
[Unit]
Description=MySQL Server
Documentation=man:mysqld(8)
Documentation=http://dev.mysql.com/doc/refman/en/using-systemd.html
After=network.target
After=syslog.target
[Install]
WantedBy=multi-user.target
[Service]
User=mysql
Group=mysql
ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/etc/my.cnf
LimitNOFILE = 5000
EOF
如何分析处理MySQL数据库无法启动
6) 管理员密码的设定(root@localhost)****
mysqladmin -uroot -p password '123123'
Enter password:
登录 mysql -uroot -p mysql -uroot -p123123
忘记密码,先关闭数据库
mysqld_safe --user=mysql --skip-grant-tables --skip-networking &
修改密码 update mysql.user set password=password('666666') where host='localhost';
update mysql.user set authentication_string=password('666666') where host='localhost';
7) 创建多个数据库****
mkdir -p /data/330{7,8}/data
chown -R mysql.mysql /data/*
cat > /data/3307/my.cnf <<EOF
[mysqld]
basedir=/usr/local/mysql
datadir=/data/3307/data
socket=/data/3307/mysql.sock
log_error=/data/3307/mysql.log
port=3307
server_id=7
log_bin=/data/3307/mysql-bin
EOF
cat > /data/3308/my.cnf <<EOF
[mysqld]
basedir=/usr/local/mysql
datadir=/data/3308/data
socket=/data/3308/mysql.sock
log_error=/data/3308/mysql.log
port=3308
server_id=8
log_bin=/data/3308/mysql-bin
EOF
mv /etc/my.cnf /etc/my.cnf.bak
mysqld --initialize-insecure --user=mysql --datadir=/data/3307/data --basedir=/usr/local/mysql
mysqld --initialize-insecure --user=mysql --datadir=/data/3308/data --basedir=/usr/local/mysql
cd /usr/lib/systemd/system
cp mysql.service mysql3307.service
cp mysql.service mysql3308.service
vim mysql3308.service
ExecStart=/usr/local/mysql/bin/mysqld --defaults-file=/data/3308/my.cnf
systemctl start mysql3307.service
netstat -antup |grep mysql
8)登录MySQL方式****
通过端口 mysql -uroot -p -h ip -P3306
守护进程 mysql -uroot -p -S /tmp/mysql.sock
远程登录 grant all on . to root@’%’ identified by ‘123123’;