centos7下安装mysql-5.7.22.tar.gz
1. 下载解压MySQL
cd /usr/local/src
wget https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.22-linux-glibc2.12-x86_64.tar.gz
解压 tar -zxvf mysql-5.7.22-linux-glibc2.12-x86_64.tar.gz
复制 cp -r mysql-5.7.22-linux-glibc2.12-x86_64 /usr/local/mysql
2、添加系统mysql组和mysql用户
添加系统mysql组 groupadd mysql
添加mysql用户 useradd -r -g mysql mysql (添加完成后可用id mysql查看)
3、安装数据库
切到mysql目录 cd /usr/local/mysql
修改当前目录拥有者为mysql用户 chown -R mysql:mysql ./
绑定数据目录 bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
出现错误请参考文末注1

生成了临时密码
执行以下命令创建RSA私钥
bin/mysql_ssl_rsa_setup --datadir=/usr/local/mysql/data
修改当前目录拥有者为mysql用户 chown -R mysql:mysql ./
修改当前data目录拥有者为mysql用户 chown -R mysql:mysql data
4、配置my.cnf
vim /etc/my.cnf (直接把下面内容复制上就行)
[mysqld] character_set_server=utf8 init_connect='SET NAMES utf8' basedir=/usr/local/mysql datadir=/usr/local/mysql/data socket=/tmp/mysql.sock #不区分大小写 (sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES 这个简单来说就是sql语句是否严格) lower_case_table_names = 1 log-error=/var/log/mysqld.log pid-file=/usr/local/mysql/data/mysqld.pid
添加开机启动 cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld
修改 vim /etc/init.d/mysqld
添加路径 在46行
basedir=/usr/local/mysql datadir=/usr/local/mysql/data

5、启动mysql service mysqld start
加入开机起动 chkconfig --add mysqld
6、登录修改密码 mysql -uroot -p 上面初始化时的密码(如果出现mysql命令未找到,请参考注2)
修改密码:
登录MySQL用UPDATE直接编辑user表
use mysql; update user set password=password('123') where user='root' and host='localhost'; flush privileges;
或直接修改:
alter user user() identified by "123456";
注1:执行bin/mysqld命令时出现 bin/mysqld: error while loading shared libraries: libnuma.so.1:错误时执行以下解决方案
如果安装mysql出现了以上的报错信息.这是却少numactl这个时候
Centos就yum -y install numactl就可以解决这个问题了.
ubuntu的就sudo apt-get install numactl就可以解决这个问题了
注2:如果出现mysq:command not found错误 需要添加软连接 ln -s /usr/local/mysql/bin/mysql /usr/bin 即可解决
注3:远程连接Mysql服务器的数据库,错误代码是1130,ERROR 1130: Host xxx.xxx.xxx.xxx is not allowed to connect to this MySQL server
在本机登入mysql后,更改 “mysql” 数据库里的 “user” 表里的 “host” 项,从”localhost”改称'%'即可
mysql -u root -p #以权限用户root登录 use mysql; #选择mysql库 select 'host' from user where user='root'; #查看mysql库中的user表的host值(即可进行连接访问的主机/IP名称) update user set host = '%' where user ='root'; #修改host值(以通配符%的内容增加主机/IP地址),当然也可以直接增加IP地址,如果这步出错"ERROR 1062 (23000): Duplicate entry '%-root' for key 'PRIMARY'" 由说明该记录有了,跳过这步 flush privileges; #刷新MySQL的系统权限相关表 select 'host' from user where user='root'; #再重新查看user表时,有修改。。 systemctl restart mysql#重起mysql服务即可完成
注4:在忘记root密码的时候,可以这样,以windows为例:
1. 关闭正在运行的MySQL服务。
2. 打开DOS窗口,转到mysql\bin目录。
3. 输入mysqld --skip-grant-tables 回车。--skip-grant-tables 的意思是启动MySQL服务的时候跳过权限表认证。
4. 再开一个DOS窗口(因为刚才那个DOS窗口已经不能动了),转到mysql\bin目录。
5. 输入mysql回车,如果成功,将出现MySQL提示符 >。
6. 连接权限数据库: use mysql; 。
6. 改密码:update user set password=password("123") where user="root";(别忘了最后加分号) 。
7. 刷新权限(必须步骤):flush privileges; 。
8. 退出 quit。
9. 注销系统,再进入,使用用户名root和刚才设置的新密码123登录。

浙公网安备 33010602011771号