发表于: 2018-03-27 21:56:58
2 3341
今天完成的事情:
1.服务器部署,还是服务器部署
先附上mysql官网的安装文档:
https://dev.mysql.com/doc/refman/5.7/en/data-directory-initialization-mysqld.html
今天踩在mysql这个坑上了
昨天免费使用的,今天买了一个腾讯云的,10元1月
系统:
服务器系统:centOS
linux目录结构:
http://www.360doc.com/content/16/0721/16/2723346_577322798.shtml
没操作过linux,昨天按着教程,今天上午看了linux的一些相关的资料
然后把需要的jdk和mysql装在 /usr/local/ (本地安装文件)目录下
然后把数据表传上去,在服务器运行sql文件:
没想到这么久
14:33到15:29
4092896条数据,将近一个小时
查看mysql的目录
[root@VM_129_126_centos ~]# whereis mysql
mysql: /usr/bin/mysql /usr/lib64/mysql /usr/share/mysql /usr/share/man/man1/mysql.1.gz
然后设置本地访问服务器,然后连接不到,看了资料,把服务器安全组接口打开。
后来发现一个问题,mysql输入 mysql -uroot -p 进不去
直接输入mysql回车就能进去。
然后使用密码就进不去(Access denied ),拒绝访问 。
就在这就进不去了,
新建用户,Access denied
更改密码,Access denied
更改权限,Access denied
更改localhost127.0.0.1,Access denied
后来又发现数据库也不显示了,show databases只有一个information数据库,进不去,改不了,不能创建。
重装
在官网下载二进制的,重新安装
解压以后复制到usr/local/mysql目录下
然后创建mysql用户和用户组 groupadd mysql和useradd -r -g mysql mysql
进入目录,修改当前目录拥有者为mysql:chown -R mysql:mysql ./
然后初始化数据库的时候报错,装的是5.7的
执行 ./scripts/mysql_install_db --user=mysql --datadir=/usr/local/mysql/data/mysql/
报错文件或者目录没有找到,是5.7改了data文件到bin下面,添加了data目录
然后执行 ./bin/mysql_install_db --user=mysql
报错:
2018-03-27 18:46:25 [WARNING] mysql_install_db is deprecated. Please consider switching to mysqld --initialize
2018-03-27 18:46:25 [ERROR] The data directory needs to be specified.
弃用,请尝试mysqld
mysqld --initialize --user=mysql --datadir=/usr/local/mysql/
提示:
-bash: mysqld: command not found
找到原因:这是由于系统默认会查找/usr/bin下的命令,如果这个命令不在这个目录下就找不到命令,我们需要做的就是映射一个链接到/usr/bin目录下,相当于建立一个链接文件。
把mysqld添加到/usr/bin
ln -s /usr/local/mysql/bin/mysqld /usr/bin
再执行可以识别命令,但还是错误
mysqld: error while loading shared libraries: libnuma.so.1: cannot open shared object file: No such file or directory
没有这样的文件或目录
然后打开etc/my.cnf看到:
[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
然后执行 mysqld --initialize --user=mysql --datadir=/var/lib/mysql
还是同样的错误
再执行了:
bin/mysql_install_db --user=mysql --basedir=/usr/local/mysql/ --datadir=/usr/local/mysql/data/
2018-03-27 19:23:02 [WARNING] mysql_install_db is deprecated. Please consider switching to mysqld --initialize
2018-03-27 19:23:02 [ERROR] Child process: /usr/local/mysql/bin/mysqldterminated prematurely with errno= 32
2018-03-27 19:23:02 [ERROR] Failed to execute /usr/local/mysql/bin/mysqld --bootstrap --datadir=/usr/local/mysql/data --lc-messages-dir=/usr/local/mysql/share --lc-messages=en_US --basedir=/usr/local/mysql
-- server log begin --
-- server log end --
依然没有
查看了下
--basedir 指定了安装 MySQL 的安装路径,填写全路径可以解决相对路径所造成的问题。
--datadir 是指定 MySQL 的数据库文件放在什么路径下。数据库文件即我们常说的 MySQL data 文件。
于是执行:mysqld --initialize --user=mysql --datadir=/usr/local/mysql/data/
报错:mysqld: error while loading shared libraries: libnuma.so.1: cannot open shared object file: No such file or directory
提示找不到文件或者目录,但是我路径下有文件夹啊。遂继续查资料,发现可能是libnuma.so.l是32位的。
于是就删除装64位的
yum remove libnuma.so.1
yum install numactl.x86_64
重新执行:
mysqld --initialize --user=mysql --datadir=/usr/local/mysql/data/
可以了
2018-03-27T11:42:04.792924Z 0 [Warning] TIMESTAMP with implicit DEFAULT value is deprecated. Please use --explicit_defaults_for_timestamp server option (see documentation for more details).
2018-03-27T11:42:05.733233Z 0 [Warning] InnoDB: New log files created, LSN=45790
2018-03-27T11:42:06.010896Z 0 [Warning] InnoDB: Creating foreign key constraint system tables.
2018-03-27T11:42:06.128010Z 0 [Warning] No existing UUID has been found, so we assume that this is the first time that this server has been started. Generating a new UUID: dff80303-31b3-11e8-96c0-5254009a7ba1.
2018-03-27T11:42:06.136762Z 0 [Warning] Gtid table is not ready to be used. Table 'mysql.gtid_executed' cannot be opened.
2018-03-27T11:42:06.137380Z 1 [Note] A temporary password is generated for root@localhost: i%YZeuUXu4Fr
切回cd /usr/local/mysql
再把拥有者切回root:sudo chown -R root:root /usr/local/mysql
启动报错:ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
使用systemctl status mysqld.service命令查看报错原因:
Unit mysqld.service could not be found.
查找了一下,发现是mariadb.service没有启动的原因
mariadb.service是一个类似mysql安全向导的东西
执行:systemctl enable mariadb.service
发现:Failed to start mariadb.service: Unit not found.
于是安装:yum install -y mariadb-server
再次执行mysql,终于可以启动了
然后,又遇到问题了。
修改密码——>ERROR 3009 (HY000):
修改host——>ERROR 1046 (3D000):
进入库修改——>ERROR 1146 (42S02): Unknown error 1146
进入mysql库修改——>ERROR 1062 (23000):
使用系统分配的密码登陆报错——>ERROR 1045(28000):Unknown error 1045
于是查看mysql数据库
MySQL [(none)]> use mysql;
提示:
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A
Database changed
查看表
MySQL [mysql]> show tables;
+---------------------------+
| Tables_in_mysql |
+---------------------------+
| columns_priv |
| db |
| event |
| func |
| general_log |
| help_category |
| help_keyword |
| help_relation |
| help_topic |
| host |
| ndb_binlog_index |
| plugin |
| proc |
| procs_priv |
| proxies_priv |
| servers |
| slow_log |
| tables_priv |
| time_zone |
| time_zone_leap_second |
| time_zone_name |
| time_zone_transition |
| time_zone_transition_type |
| user |
+---------------------------+
24 rows in set (0.00 sec)
进入安全模式,查找用户
MySQL [mysql]> delete from user where user='';
Query OK, 2 rows affected (0.00 sec)
删除了空用户,依然进不去。唯一可以进去的是-uroot 不输入密码。
但是没有权限。表依然可以使用。
看了官网,查看目录权限: ls -la /usr/local/mysql/data
都是mysql
于是更改目录权限
[root@VM_129_126_centos ~]# chown -R root /usr/local/mysql/data
[root@VM_129_126_centos ~]# chgrp -R root /usr/local/mysql/data
再次查看:
更改了权限,但是登陆依然报错
· 正常的表都可以使用,增删改查都可以,但只能在本地,空用户的使用。但是远程访问需要权限,而且需要账号密码,就是因为这个不能改动,一动就错。
明天计划的事情:
换个版本再装一次,或者按照官网再装一次。再不行换个姿势再来。
如果不行就先部署其它的了。
先找个比较正式的资料查看一遍流程。
遇到的问题:
ERRORERROR
ERRORERROR
ERRORERROR
ERRORERROR
ERRORERROR
ERRORERROR
ERRORERROR
ERRORERROR
或许有些地方没有注意,比如配置文件什么的。因为根本不知道要配置什么。
还有今天用谷歌和360写不成日志,打开没有编辑窗口,用的火狐。
收获:
熟悉操作linux的一些常用命令
熟悉了mysql的各项安装操作
又浪费了一天(也不能算浪费),这两天该办的事一个都没有办,脸上笑嘻嘻,心里mmp
——错的越多,认识的也就越多
评论