CentOS6 安装 MySQL5.7
CentOS 6.10 编译安装 Mysql 5.7.23 X64
1、添加用户组和用户
- 添加用户组和用户
groupadd mysql
- 添加用户
useradd -g mysql -s /bin/nologin mysql -M
nologin选项代表这是启动服务使用的账号,不登录
-M 不创建home目录
2、确认selinux状态是否为disabled
vi /etc/selinux/config
3、卸载系统自带的Mysql包
rpm -qa | grep mysql
如果有的话使用
yum remove mysql-libs-5.1.73-3.el6_5.x86_64
4、安装依赖的包,是的就这么几个包,不需要先安装安装boost0.1.59.0
yum -y install wget gcc-c++ ncurses-devel cmake
-y 就是不用每个包都按一边yes
Installing : mpfr-2.4.1-6.el6.x86_64 1/8
Installing : cpp-4.4.7-23.el6.x86_64 2/8
Installing : ppl-0.10.2-11.el6.x86_64 3/8
Installing : cloog-ppl-0.15.7-1.2.el6.x86_64 4/8
Installing : gcc-4.4.7-23.el6.x86_64 5/8
Installing : libstdc++-devel-4.4.7-23.el6.x86_64 6/8
Installing : gcc-c++-4.4.7-23.el6.x86_64 7/8
Installing : ncurses-devel-5.7-4.20090207.el6.x86_64 8/8
Verifying : ncurses-devel-5.7-4.20090207.el6.x86_64 1/8
Verifying : gcc-c++-4.4.7-23.el6.x86_64 2/8
Verifying : gcc-4.4.7-23.el6.x86_64 3/8
Verifying : mpfr-2.4.1-6.el6.x86_64 4/8
Verifying : cpp-4.4.7-23.el6.x86_64 5/8
Verifying : libstdc++-devel-4.4.7-23.el6.x86_64 6/8
Verifying : ppl-0.10.2-11.el6.x86_64 7/8
Verifying : cloog-ppl-0.15.7-1.2.el6.x86_64 8/8
5、安装
1)下载最新的 mysql-boost-5.7.23.tar.gz #下载这个可以少很多坑.具体版本号到mysql网站上看一下
cd /usr/local/src 执行下面的下载,或者将包拷贝到此目录
wget https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-boost-5.7.23.tar.gz
2)解压并安装
设定安装目录为 /usr/local/mysql 也可以指定到别处,相当于basedir
tar -zxvf mysql-boost-5.7.23.tar.gz
cd mysql-boost-5.7.23
注意指定正确的mysql安装位置 -DCMAKE_INSTALL_PREFIX=/usr/local/mysql
cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DWITH_ARCHIVE_STORAGE_ENGINE=1 -DWITH_BLACKHOLE_STORAGE_ENGINE=1 -DWITH_MEMORY_STORAGE_ENGINE=1 -DWITH_READLINE=1 -DENABLED_LOCAL_INFILE=1 -DMYSQL_USER=mysql -DMYSQL_TCP_PORT=3306 -DWITH_BOOST=boost/boost_1_59_0
make && make install
3)进入到mysql的basedir,创建data目录
cd /usr/local/mysql
mkdir data
4)将此目录的用户和属组切换到mysql
chown -R mysql:mysql /usr/local/mysql
5)初始化数据库
注意此处要复制执行后回显的数据库密码用户后期登录
bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
数据库密码(每次安装都不同):
注:
1)"--initialize"会生成一个随机密码(~/.mysql_secret),而"--initialize-insecure"不会生成密码
2)--datadir目标目录下不能有数据文件
3)使用--initialize参数后,一定要复制密码保存在上面的相应位置。
6、拷贝启动文件到/etc/init.d/并重命名
cp -a /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
7、创建配置文件
vim /etc/my.cnf
[mysqld]
basedir =/usr/local/mysql
datadir =/usr/local/mysql/data
port = 3306
socket = /tmp/mysql.sock
log-error=
pid-file
[client]
socket=/tmp/mysql.sock
8、启动mysql
service mysqld start
或
/etc/init.d/mysqld start
9、登录mysql验证安装成功
/usr/local/mysql/bin/mysql -uroot -p
输入之前记录的数据库密码
登录后执行如下命令,并看到如下输出代表成功
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
4 rows in set (0.00 sec)
10、修改root密码
mysql>set password = password(‘新密码‘);
mysql>flush privileges;
mysql>exit
11、退出并重新登录mysql
/usr/local/mysql/bin/mysql -uroot -p
输入密码
12、添加环境变量
vi /etc/profile 或 ~/.bash_profile
末尾添加如下
/usr/local/mysql/bin:/usr/local/mysql:$PATH
让添加生效
source /etc/profile source ~/.bash_profile
13、开机自启动
chkconfig mysqld on
14、防火墙的配置,否则外网进不来,这个步骤要多试几次,因为防火墙有时候有问题
vi /etc/sysconfig/iptables 加入如下一行
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3306 -j ACCEPT #放行这个端口
-A INPUT -p tcp -m tcp -s 192.168.89.1 --dport 3306 -j ACCEPT #现在某个IP从某个端口进入,多个IP需要多行逐个控制。
service iptables reload
service iptables restart
15、root用户的远程访问
1)mysql> use mysql
2)mysql> select user,host from user;
+---------------+-----------+
| user | host |
+---------------+-----------+
| root | % |
| mysql.session | localhost |
| mysql.sys | localhost |
+---------------+-----------+
3 rows in set (0.00 sec)
3)mysql> update user set host='%' where user='root';
Query OK, 0 rows affected (0.00 sec)
Rows matched: 1 Changed: 0 Warnings: 0
16、重启测试服务器测试
shutdown -r now