at the beginning of DB. All tables charset were settled utf8 previously but I don't know why and from were this statement didn't change.
Also in previous versions DB does not had this statement.
It's much more fun, when you can discuss your problems with others...
You are not logged in. Please login or register.
FrontAccounting forum → Posts by asgare
at the beginning of DB. All tables charset were settled utf8 previously but I don't know why and from were this statement didn't change.
Also in previous versions DB does not had this statement.
I solved this
Changed SET NAMES latin1; to UTF8
For using FA, I fully modified DB (including all default values, languages and chart of accounts) to localize both language and chart of account.
I always had problem viewing DB information in FA, even after changing DB in utf-8.
In previous versions I solved this issue via adding
mysql_set_charset("utf8");
within two functions in connect_db.inc file and this way I could solve it.
Nevertheless in FA 2.4 there are major updates and I don't know how do I solve this.
Dear Janusz
You are right, I don't know why we couldn't understand this option clearly. Very sorry of that.
After composing "Direct Invoice" we need to settle customer payment. Two ways FA lets us, first "Customer Payments" second "Deposit Entry". If we use "Deposit Entry" for settling payments, we always see unsettled payments in "Customer Payments". Also our accountants team tried in other types and saw this issue persists.
refer to my previous post: https://frontaccounting.com/punbb/viewtopic.php?pid=23675#p23675
$brain_smashed = $apmuthu_knowledge;
Thank you apmuthu :-)
I successfully recover .... yuhahahahahah
With the help of your last pdf attachment and some Googling upon full text guide, finally issue solved!
http://www.thegeekstuff.com/2014/04/recover-innodb-mysql
----------------------------------------------------------------------------------------
How to Recover InnoDB MySQL Table Data from ibdata and .frm Files
This tutorial explains how to restore MySQL tables when all or some of the tables are lost, or when MySQL fails to load table data.
One of the reason for this to happen is when the table data is corrupted.
In this particular scenario, when you connect to the MySQL database server, you cannot see one more tables, as they are missing.
Under this scenario, the MySQL log file contained the following messages:
InnoDB: Error: log file ./ib_logfile0 is of different size 0 50331648 bytes
InnoDB: than specified in the .cnf file 0 5242880 bytes!
[ERROR] Plugin 'InnoDB' init function returned error.
[ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
[ERROR] Unknown/unsupported storage engine: InnoDB
[ERROR] Aborting
The method explained below will work only for InnoDB database.
Note: Before you do anything, take a backup of all the MySQL files and database in the current condition, and keep it somewhere safe.
To restore the table data you have make sure that data directory and its contents are intact. In my case it was fine.
drwx------ 2 mysql mysql 4096 Oct 11 2012 performance_schema
drwx------ 2 mysql mysql 4096 Dec 10 2012 ndbinfo
drwx--x--x 2 mysql mysql 4096 Dec 10 2012 mysql
-rw-rw---- 1 mysql mysql 56 Dec 19 2012 auto.cnf
drwx------ 2 mysql mysql 4096 Jul 30 2013 bugs
-rw-r----- 1 mysql mysql 50331648 Mar 18 10:35 ib_logfile0
-rw-r----- 1 mysql mysql 50331648 Apr 22 2013 ib_logfile1
-rw-r----- 1 mysql mysql 35651584 Mar 18 10:35 ibdata1
..
Ibdata1 – This file is the InnoDB system table space, which contains multiple InnoDB tables and associated indexes.
*.frm – Holds metadata information for all MySQL tables. These files are located inside the folder of the corresponding MySQL database. (for example, inside “bugs” directory)
ib_logfile* – All data changes are written into these log files. This is similar to the archive logs concepts that we find in other RDBMS databases.
Copy the Files
To restore the data from the above files, first stop the MySQL server.
# service mysqld stop
Copy the ibdata files, and the database schema folder to some other directory. We will use this to restore our Mysql database. In this case, we’ll copy it to the /tmp directory. The name of the database scheme in this example is bugs.
cp –r ibdata* ib_logfile* /tmp
cp –r schema_name/ /tmp/schema_name/
Start the MySQL server:
# service mysqld start
On a related note, for a typical MySQL database backup and restore, you should use the mysqldump command.
Restore the Data
Next, restore the table data as explained below.
In the my.cnf configuration file, set the value of the following parameter to the current size of the ib_logfile0 file. In the following example, I’ve set it to 48M, as that is the size I see for the ib_logfile0 file when I did “ls -lh ib_logfile0″
innodb_log_file_size=48M
Please note that both the ib_logfile0 and ib_logfile1 file size will be the same.
Copy the previous ibdata files to respective position, inside mysql data directory.
cp –r /tmp/ibdata* /var/lib/mysql/
Create an empty folder inside data directory with the same name as the database schema name that you are trying to restore, and copy the previous .frm files inside this folder as shown below:
cp –r /tmp/ib_logfile* /var/lib/mysql/
cp –r /tmp/schema_name/*.frm /var/lib/mysql/schema_name/
Finally, restart the MySQL server.
service mysqld restart
Now you have MySQL server running with the restored tables. Don’t forget to grant appropriate privileges for the clients to connect to the MySQL database.
BTW, many time I tried these commands to repair tables but didn't worked!
mysqlcheck -u root -p --auto-repair --check --optimize --all-databases
mysqlcheck -u root -p --check --all-databases
mysqlcheck -u root -p --optimize --all-databases
Also your last message which attached with the title of "Recovering an InnoDB table from only an .ibd file" was more out of my knowledge :-) my brain smashed
I believe there should be a way, because I saved those needed files but I can't put together them
I don't know how really should I appreciate your kind helps
I read all of references last night. Also I found those (ibdata1, ib_logfile0, ib_logfile1) files from lost server, attached via below link.
Download Link from my web server
According your kind recommendation & references:
1. I made a virtual machine with Debian 7 and all needed staff, such as phpmyadmin, mysql and ...
2. Create an empty DB with that name
3. Stop MySQL engine
4. Copy those mentioned files in place
5. Gave desire mysql group permission to files and DB files
6. Start MySQL
While starting mysql, it reported can't repair some DB in my made DB.
The only thing that I can't control mysql version compatibility with my lost server.
Sorry for taking your valuable time too much, can you put some effort for the attached files!
Hi dear apmuthu
Thanks a ton
please if you don't mind answering some question
Some DB files had three items of (*.myd *.myi *.frm) but some just had (*.frm) files. Since I knew copy action was done successfully, DB files should not be corrupted. Is it possible some DB Tables became MyISAM and some of them InnoDB? if yes how could I know that?
How did you restore that? can I do via WAMP? or certainly should do it via Linux based mysql? and how should my configuration would be? by stopping MySQL engine and copy/paste solve my needs?
Please give me a comprehensive solution to bring out this DB, I lost my trust beside my friend
Thanks for the time you put for analyzing DB files.
Appreciate you kind condolence
I must solve this, don't have any excuse for my friend
I really got in a big disaster ((
I lost my Debian server accidentally, that was my own fault ( For about 3 days (day & night) I am working with DB raw files.
I only copied all mysql *.myd *.myi *.frm files within " /var/lib/mysql" directory. I don't taken backup is MyISAM or InnoDB.
I got tired of Googling, please help me.
below is the uploaded files in my web server (
www.eai.co.ir/Backup/fa_db.zip
still unsolved and very ugly bug
Dear Janusz
Please keep up with me until step 3 and hold there . Suppose business wants to exchange product, without any money back (refund). When the business return back the sold product and wanted to issue Invoice at the same time for replacement, top of invoice shows “Current Credit” amount for that customer. It says business should pay 100$ for that customer because of that product he/she returned.
Now consider replacement invoice again issued, when we check the “Customer Payments” notice that unsettled payment for the replacement. In fact that customer has not due for business but in “Customer Payments” wrongly show a record of unsettled payment. And in no way can't remove that record.
ANOTHER EXAMPLE
Consider instead of entering unsettled “Customer Payments” form their own place we use Banking and General Leader > Payments. When we enter the payments still we saw unsettled at “Customer Payments” section too.
You can see these errors on Purchase section too.
still I am looking for ways to solve it!!!
There is a very risky bug in both Sales/Purchase “payment” section
Let me explain it as a case study, step by step:
1. Issuing a direct invoice with the product “X” by the price of 100 $. Considering that “Current Credit” in “Direct Invoice” shows 0 USD.
2. We go to “Customer Payments” and allocate whole 100$ amount.
3. Then Customer asks for refund. Do the process via “Customer Credit Notes” for returning products X without giving any money back.
4. After that, same customer ask for alternative product. Here we go to the “Direct Invoice” and we saw “Current Credit” in “Direct Invoice” shows 100 $.
5. Finally the time for allocating payment in “Customer Payments” we saw the problem. Since the current product has a new price, “Customer Payments” section instead of using customer credit, show us whole price for customer.
You can see this bug in both Sales/Purchase “payments” section. Professionals can solve this issue but those are not accountant have problem with it. In my idea this bug is very dangerous point in accounting system.
In accounting for 2 simple reason "allocate payment" is not suitable.
1. We received payment without entering any sales
2. Received more money than issued invoice
Also accountants have more reason than I wrote here.
In my own opinion this is a bug and have solution to solve it.
apmuthu I did both, I have problem with this beta version only.
We use previous versions of FA and also PDF generates in Arabic language. Now in recent beta version we can't fix the problem. Reports do not generates in utf-8.
Consider a business had issued some "Direct Invoices" to customer X without allocating "Customer Payments". In my case suppose there are 3 Invoices for customer X.
Now for some reasons accountant entered a "Deposits" for customer X from "Banking and General Ledger". Since we entered a "Deposits", FA must lessen the remaining amount at "Customer Payments". This is a problem. It is true in reports we can see the right remaining but the time we reach to the "Customer Payments" we receive wrong results.
Also this is the same behavior in "Payments to Suppliers" section.
apmuthu, any recommendation on how to start this module?
With the budget and knowledge we have it took's a lot for us to create this but we will do that. Your further guideline we boost us more, such as which tables to work with and so on.
Exactly, you well understood my meant apmuthu, thank you.
I and our team worked on FA very much, we really believed in we are a part of FA and can't give up.
We found a normal solution for check issues. We just need to know the encashment period while looking at "Bank Account Inquiry". For this we need to:
1. Add a date input in customers and suppliers "Payment Entry" for keeping check encashment date.
2. Altering “Bank Account Inquiry” section. Add a Combo box to let users to choose wither they are looking entry date or encashment date and have another encashment field in data grid.
Apmuthu, in your experience how much time does it takes to alter FA to feet in this shape?
Well, there is a big difference here.
Shape of business trades here is vary from US; suppose a business that takes 100's (or more than) of checks from consumers or businesses within a month. Then that business pass away the taken checks to other businesses, like suppliers or etc…, or business issue their own checks to others. Meanwhile here businesses due to backs late encashment or instead of issuing their own company checks pass away taken checks to others, and because of that often put them in banks.
In “Reconcile Bank Account” you can just checkmark and compare with bank statement and this do not alter or change GL. Any change should made at other part like GL or payment entry manually.
Now if that business want to look up for checks they have taken from date to date for encashment or giving to other suppliers what have to do?
For your consideration our type of accounting is accrual and not cash accounting and because of that most of bank transaction based on check.
apmuthu, did I clearly express what I want? at first stage it is very important to me that I indicate FA check section shortage clearly.
How do you put "Bank Account Reconciliation" in check section?
Dear apmuthu, the only thing I want is to have:
1. Adding another "date" input in "Payment Entry(ies)".
2. For checks look up solution, to add 2 "Date input text" in "Journal Inquiry" with start and end date; this will solve everything because we can easily check what checks should be cashed at specific period of time or when is the checks due dates.
I wish joe also involve to this matter too...I think Non Field DB Data can't applicable for this matter.
FrontAccounting forum → Posts by asgare
Powered by PunBB, supported by Informer Technologies, Inc.
Currently installed 4 official extensions. Copyright © 2003–2009 PunBB.